上篇文章介绍了Socket和ServerSocket简单使用和源码,服务器端会对每个客户端请求创建一个线程,为使服务器端能同时处理多个客户端请求,可以采用多线程的方式。本文仅对实例进行简单记录,如下。
服务器端
importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;public classMultiJabberServer {static final int PORT = 8080;public static void main(String[] args) throwsIOException{
ServerSocket serverSocket= newServerSocket(PORT);
System.out.println("Server Started");try{while(true) {
Socket socket=serverSocket.accept();try{newServeOneJabber(socket);
}catch(IOException e) {//If it fails, close the socket,//otherwise the thread will close it:
socket.close();
}
}
}finally{
serverSocket.close();
}
}
}
while循环获取连接,并构造ServerOneJabber,启动线程处理客户端交互。
importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava