【问题标题】:How to send packets continuously through TCP?如何通过 TCP 连续发送数据包?
【发布时间】:2017-12-24 08:39:21
【问题描述】:

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

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

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

我怎么能这样做?我一直在上网查,但没有找到任何东西。

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

【问题讨论】:

    标签: java sockets tcp server


    【解决方案1】:

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

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

    • 从服务器到已知的连接客户端的常规数据传输(预期没有响应)
    • 某种形式的“心跳检测” - 服务器要求客户端检查它们是否仍然可以访问/活动

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

    所以服务器会保存一个已知客户端的列表。一个线程正在向客户端发送数据;另一个线程定期迭代该列表并询问心跳答案。如果没有及时得到答复,则该客户将从列表中删除。

    【讨论】:

    • 是的,但我无法在网上找到任何关于这些的示例。是否不可能从服务器向客户端发送消息并检测到它必须响应的消息?无论如何,我想我需要知道如何连续发送包裹,你能帮我吗?
    • 如前所述:您的问题正朝着“过于宽泛”的方向发展。所以,请先阅读meta.stackoverflow.com/questions/284236/… ...并考虑一下。然后回来提出我们可以提供帮助的问题。
    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 2016-04-11
    • 2013-09-16
    • 2018-04-12
    相关资源
    最近更新 更多