Socket 的服務端與客戶端連接
服務器端:
ServerSocket SERVER = new ServerSocket(11111);
System.out.println("服務器已啟動,等待用戶連接---------");
while(true) {
//連接客戶端
Socket socket = SERVER.accept();
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
es.execute(new User(oos,ois,socket));
}
User 執行緒 :while(true){ois.readObject()}
用戶端:Socket socket = null;
try {
socket = new Socket("192.168.10.10",11111);
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
while (true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
當關閉客戶端時服務端一直拋出例外 java.net.SocketException: Connection reset 是要重新連接的意思嗎?
如何才能讓客戶端關閉了就直接結束 讓兩端直接斷開 服務器釋放記憶體?
uj5u.com熱心網友回復:
把socket傳給User執行緒User執行緒:while(true){
if(socket.isClosed() || !socket.isConnected) {//判斷socket是否關倍訓不聯通
break;
}
ois.readObject();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/189575.html
標籤:Java SE
上一篇:求一個搶購BOT
