當前位置:編程學習大全網 - 源碼下載 - java 編寫的服務器客戶端socket無法持續收發信息

java 編寫的服務器客戶端socket無法持續收發信息

serverSocket?=?new?ServerSocket?(?9999?);

serverThread?=?new?ServerThread?(?serverSocket?);

serverThread.start?(?);

看妳這塊的代碼,妳的server定義了serverSocket,當妳開啟服務後,新建了壹個服務線程,去監聽

while(?flag?){

try{

Socket?socket?=?serverSocket.accept(?);

ServerThreadAgent?serverThreadAgent?=?new?ServerThreadAgent(?socket?);

serverThreadAgent.start(?);

}

catch(?Exception?e?){

e.printStackTrace(?);

}

在監聽的線程中,當遇到客戶端的請求時,創建壹個Socket,與客戶端建立壹條通道,進行通信

public?void?run?(?)

{

try

{?

Object?message?=?SocketUtil.readStream?(?socket?);//?接收信息

System.out.println?(?socket.getInetAddress?(?)?+?"發來信息:"

+?message);

String?sendMessage?=?"信息已經收到。";

SocketUtil.writeStream?(?sendMessage,?socket?);//?發送信息

}

catch?(?Exception?e?)

{

e.printStackTrace?(?);

}

}

看妳的與客戶端保持連接的服務代理,服務代理線程開啟後,先是接受客戶端的信息,先是出來,然後向客戶端發送壹條消息,然後,然後呢?

然後,就沒有然後來了,服務代理線程的生命就此結束,也就是說客戶端與服務端的通話結束,連接已經斷開。

與客戶端既然已經斷了,怎麽可能進行消息傳遞呢?

這樣壹分析,問題明顯出來了,問題出在哪?

問題就是在於與客戶端保持通話的服務代理線程,怎樣才能保持通話呢?

那就是在代理線程的run方法中進行循環進行監聽,也就是說消息的接受,這樣,才能保持通話,想結束的時候,就退出循環,或是客戶端主動的結束通話。

  • 上一篇:入戶門風水對墻角好嗎?入口門到拐角的解決方案

    門正對角,風水兇。

    房子的門對著其他房子的墻角,就是飛刀,也叫墻刀。如果飛刀犯了,屋裏的人身體不好,容易生病,容易出事。壹般來說,尖形對住宅大門的風水是兇的。如果妳長期住在這種房子裏,妳會受到厄運的困擾。

    最好避免門對著墻角。

    農村自建房如果有門正對墻角,最好把門移開,避開墻角。或者讓鄰居在蓋房子的時候把墻向前或

  • 下一篇:查找文獻的網站有哪些
  • copyright 2024編程學習大全網