服務器線程
按照老師的做法,為什么我啟動了服務端,和客戶端,服務器端顯示了客戶端連接1,也會立即顯示客戶端連接2、
public?class?Server?{
public?static?void?main(String[]?args){
try?{
//1.創建服務器端socket,并指定端口號監聽
ServerSocket?serversocket?=?new?ServerSocket(8888);
//2.開始監聽客戶端請求
Socket?socket?=?null;
System.out.println("***服務器即將啟動,等待客戶端的連接***");
int?count?=0;
while(true){
socket?=?serversocket.accept();
ServerThread?st?=?new?ServerThread(socket);
st.start();
count++;
System.out.println("客戶端連接數:"+count);//InetAddress?address?=?socket.getInetAddress();
//System.out.println("來自客戶端地址:"+address.getHostAddress());
}
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
2015-12-08
肯定是你對著視頻敲代碼的時候敲錯了。你檢查下一下幾個地方:
定義的表示客戶端數量的變量初始化是不是0
你的System.out.println()語句是不是在accept()之前
如果不是這兩個地方有問題,你把serverSocket的代碼貼上來,我給你看看
2015-12-08