一、socket双向通信的问题
在上篇博客中,利用socket 实现了一个非常简单的服务端和客户端通信的小程序,**但仔细思考一下,这其中有什么问题呢?**还是先把上篇博客的代码贴出来吧(为了说明问题,代码有的地方稍有改变,只是写法不同而已)
1.服务端
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class SocketServer {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(10086);
Socket socket = serverSocket.accept();
System.out.println("one client has conneted server,"+socket.getRemoteSocketAddress());
while (true){
System.out.println("wait data...");
//接受
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("[client]:"+br.readLine());
System.out.println("wait write...");
//发送
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
bw.write(str);
bw.write("\n");//约定一个结束标记,告诉客户端我这条数据发完了,你可以读了
bw.flush();
System.out.println("data sent..");
}
}yi
}
客户端:
2.客户端:
```bash
import java.io.*;
import java.net.Socket;
import java