2016-04-28 160 views
-2

我有我的ClientListener的問題,服務器發送TCP包,但客戶端不顯示它。TCP的java聊天,客戶端不聽

這裏是我的代碼

https://github.com/Behoston/sieci/tree/master/src/tcp

(服務器運行新的線程爲每個新客戶端和這個線程(聽)等來發送消息(它的工作原理是線程運行 - 我能看到的消息wireshark 客戶端運行主線程在哪裏可以輸入一些文本和第二therad(不正常工作)來收聽來自serever的消息)

回答

0

如果您只提供一個鏈接到您的存儲庫,一些代碼片段至關重要的類別或方法將是最好的PFUL。

如果我的你提供的類的理解是正確的,這是你試圖實現(糾正我,如果我錯了)的工作流程:

  1. 服務器被啓動
  2. 客戶端連接
  3. 服務器發送一個歡迎消息(其是沒有得到關於客戶機側顯示):

    DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); 
        outToClient.writeBytes("Hello, your ID is: " + clientId + "; To send message please use 3 first chars to set target"); 
    

在recieving方面:

BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
      response = inFromServer.readLine(); 

據我看到的,你與你的服務器發送的ByteArray等待的readLine()。由於readLine()等待行分隔符(f.e.「\ n」),所以您的消息無法處理。