天天看點

簡單實作Socket程式設計代碼

簡單實作Socket程式設計代碼

  1. 本程式隻實作單向發送就是伺服器向用戶端發送資訊(如果你想兩邊都可以互相發送就百度查找,當時我自己也是慢慢摸索出來的)
  2. 建議用idea編譯器
  3. 伺服器代碼
package Socket;

import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class Service {

    public static void main(String[] args) throws Exception {

        ServerSocket serverSocket = new ServerSocket(8080);//在本機綁定到指定的端口,并且偵聽用戶端請求。

        Socket accept = serverSocket.accept();//接收請求,建立socket對象
        PrintWriter printWriter = new PrintWriter(accept.getOutputStream());

        while (true){
            Scanner input = new Scanner(System.in);
            String msg = input.nextLine();
            printWriter.println(msg);
            printWriter.flush();
            if (msg.equals("拜拜")) break;
        }

        printWriter.close();
        accept.close();
        serverSocket.close();
    }

}
           
  1. 用戶端代碼
package Socket;

import java.io.*;
import java.net.Socket;

public class Client {

    public static void main(String[] args) throws Exception {

        Socket socket = new Socket("localhost", 8080);//首先你得得到本機端口和端口号
        InputStream inputStream = socket.getInputStream();//建立位元組輸入流接收資訊

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));//建立字元流接收伺服器發來文本

        while (true){//順環是為了持續接收資訊

            String msg = bufferedReader.readLine();
            System.out.println(msg);

            if (msg.equals("拜拜")) break;//當伺服器發給使用者拜拜後就退出程式
        }

        bufferedReader.close();//以下三個是關閉相關流
        inputStream.close();
        socket.close();
    }

}