簡單實作Socket程式設計代碼
- 本程式隻實作單向發送就是伺服器向用戶端發送資訊(如果你想兩邊都可以互相發送就百度查找,當時我自己也是慢慢摸索出來的)
- 建議用idea編譯器
- 伺服器代碼
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();
}
}
- 用戶端代碼
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();
}
}