如何通过TCP连续发送数据包?

时间:2017-07-19 08:00:24

标签: java sockets tcp server

我有一台服务器和多个客户端。服务器将字节数组(其中包含某种消息)发送到客户端,客户端将这些数组解析为可理解的形式。

另一点是,服务器发送一种特殊的消息,哪个客户端必须响应它。

我希望服务器连续发送常规消息而不期待响应,以及需要响应的特殊消息,如果它没有得到响应,它将终止连接。

我怎么能这样做?我一直在检查网但找不到任何东西。

Server--->Client(Door Opened)
Server--->Client(Door Closed)
Server--->Client(Are You There?)
Client--->Server(Yeap)
Server--->Client(Plane Has Landed.)
Server--->Client(Are you There?)
.
.
.

1 个答案:

答案 0 :(得分:0)

你的问题非常广泛,所以答案也很广泛。

分别记住关注点隔离 单一责任原则。来自那里:你实际上在这里看到两个不同的功能:

  • 从服务器到已知的连接客户端(不需要响应)的常规数据传输
  • 某种形式的“听力检测” - 服务器要求客户检查它们是否仍然可以访问

当您考虑到这一点时,很明显您可能希望在客户端和服务器中使用完全不同的“组件”来提供这两种不同的功能。喜欢:甚至在客户端/服务器中有两个不同的端口(甚至是不同的线程)。

因此服务器会保留已知客户端的列表。一个线程正在向客户端发送数据;另一个线程定期迭代该列表并要求心跳答案。如果没有及时回答,该客户端将从列表中删除。