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

Java 如何通过TCP连续发送数据包?,java,sockets,tcp,server,Java,Sockets,Tcp,Server,我有一个服务器和多个客户端。服务器向客户端发送字节数组(其中包含某种消息),客户端将这些数组解析为可理解的形式 另一点是,服务器发送一种特殊的消息,客户机必须对其作出响应 我希望服务器在不需要响应的情况下连续发送常规消息,以及需要响应的特殊类型的消息,如果服务器没有收到响应,它将终止连接 我怎么能这么做?我一直在上网,但什么也没找到 Server--->Client(Door Opened) Server--->Client(Door Closed) Server--->Cli

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

另一点是,服务器发送一种特殊的消息,客户机必须对其作出响应

我希望服务器在不需要响应的情况下连续发送常规消息,以及需要响应的特殊类型的消息,如果服务器没有收到响应,它将终止连接

我怎么能这么做?我一直在上网,但什么也没找到

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?)
.
.
.

你的问题很宽泛,所以答案也很宽泛

记住关注点分离和单一责任原则。从这里开始:您实际上看到了两种不同的功能:

  • 从服务器到已知已连接客户端的常规数据传输(不需要响应)
  • 某种形式的“hearbeat检测”——服务器要求客户端检查它们是否仍然可以访问/处于活动状态
考虑到这一点,很明显,您可能希望在客户机和服务器中使用完全不同的“组件”来提供这两种不同的功能。比如:在客户机/服务器中甚至有两个不同的端口(甚至不同的线程)


因此,服务器保留已知客户端的列表。一个线程正在向客户端发送数据;另一个线程周期性地重复该列表,并询问心跳的答案。如果没有及时的答复,该客户将从列表中删除。

是的,但我在网上找不到任何关于这些的例子。难道不可能从服务器向客户机发送消息,然后它检测到它必须响应的消息吗?无论如何,我想我需要知道如何连续发送包裹,你能帮我吗?正如我所说的:你的问题将进入“过于宽泛”的方向。所以,请先读。。。想想看。然后带着我们可以帮助的问题回来。