是不是循环的时候实例化了很多个Socket对象的缘故呀 while(true)
{
Socket socket=serverSocket.accept();
inStream=new DataInputStream(socket.getInputStream());
outStream=new DataOutputStream(socket.getOutputStream());
......
}
{
Socket socket=serverSocket.accept();
inStream=new DataInputStream(socket.getInputStream());
outStream=new DataOutputStream(socket.getOutputStream());
......
}
这是一个单线程的例子:
public void listenSocket(){ try{
server = new ServerSocket(7456);
client = server.accept();
} catch (IOException e) {
System.out.println(e.toString());
System.exit(-1);
} try{
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(client.getOutputStream(), true);
} catch (IOException e) {
System.out.println("Accept failed: 7456");
System.exit(-1);
}
//accept应该在while外面
while(true){
try{
line = in.readLine();
//Send data back to client
out.println(line);
} catch (IOException e) {
System.out.println("Read failed");
System.exit(-1);
}
}
}