2014-01-19 110 views
0

使用TCP我正在用Java聊天它使用TCP协议。 我有一个客户端和一个服务器端。聊天用Java

要发送消息给其他用户,我已经通过我的客户端发送信息到服务器,并且服务器有将它发送给另一个客户端。

服务器同时拥有在线用户的地址。当我发送私人消息时,服务器将查找IP和端口并从中创建一个套接字。 问题是它无法正常工作。

下面的代码:

int portNumber = 4444; 
String host = "192.168.0.100”; 
Socket link; 
try { 
    link = new Socket(host, portNumber); 
    // Then I set to already created PrintWriter the outputstream 
    out = new PrintWriter(link.getOutputStream(), true); 
} catch (Exception e) {} 
// Unfortunately the server freezes here (it doesn't show anything). 

如何解决这个问题呢?我在哪里错了? 预先感谢您。

回答

1

你不应该创建一个新Socket发送消息。而是使用现有连接的套接字。

序列应该是以下:

  1. 客户端A连接到服务器(服务器存储的连接为的SocketA)。
  2. 客户端B连接到服务器(服务器存储的连接作为SocketB)。
  3. 服务器从SocketA读取私人消息。消息被发送到客户端B.
  4. 服务器发现客户端B.现有的插座这是SocketB。
  5. 服务器将消息发送到SocketB。