在Java中使用TCP聊天

在Java中使用TCP聊天,java,networking,tcp,tcpclient,tcpserver,Java,Networking,Tcp,Tcpclient,Tcpserver,我正在用Java聊天,它使用TCP协议。 我有一个客户端和一个服务器端 要向另一个用户发送消息,我必须通过我的客户端将消息发送到服务器,服务器必须将消息发送到另一个客户端 服务器保存两个在线用户的地址。当我发送私人消息时,服务器会找到ip和端口,并从中创建套接字。 问题是它不能正常工作 代码如下: int portNumber = 4444; String host = "192.168.0.100”; Socket link; try { link = new Socket(host,

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

要向另一个用户发送消息,我必须通过我的客户端将消息发送到服务器,服务器必须将消息发送到另一个客户端

服务器保存两个在线用户的地址。当我发送私人消息时,服务器会找到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).
如何解决这个问题?我哪里出错了?
提前感谢。

您不应该创建新的
套接字来发送消息。相反,请使用现有连接的套接字

顺序应如下所示:

  • 客户端A连接到服务器(服务器将连接存储为SocketA)
  • 客户端B连接到服务器(服务器将连接存储为SocketB)
  • 服务器从SocketA读取私人消息。该消息发送至客户B
  • 服务器找到客户端B的现有套接字。它是SocketB
  • 服务器将消息发送到SocketB