Tcp 若一个客户端失去连接,如何将数据从服务器发送到其他活动客户端

Tcp 若一个客户端失去连接,如何将数据从服务器发送到其他活动客户端,tcp,Tcp,我有一个服务器和3个客户端(TCP连接)使用executorservice 我正在尝试将数据从服务器S发送到C1、C2和C3。总数据为3000行 如果所有3个客户端都处于活动状态,那么这3个客户端总共可以获得3000行 现在我的问题是,如果一个客户机死机(连接丢失),如何使其他两个客户机恢复连接 所有其他的数据 例如,C1已收到200行,我将其关闭。如何使C2+C3接收2800行?所有TCP会话都是独立的,因此只需将剩余的2800行写入剩余的两个套接字即可 使用select(…)将告诉您连接何时

我有一个服务器和3个客户端(TCP连接)使用executorservice

我正在尝试将数据从服务器S发送到C1、C2和C3。总数据为3000行

如果所有3个客户端都处于活动状态,那么这3个客户端总共可以获得3000行

现在我的问题是,如果一个客户机死机(连接丢失),如何使其他两个客户机恢复连接

所有其他的数据


例如,C1已收到200行,我将其关闭。如何使C2+C3接收2800行?

所有TCP会话都是独立的,因此只需将剩余的2800行写入剩余的两个套接字即可

使用
select(…)
将告诉您连接何时可以接受更多数据、有数据要读取或已关闭(准备读取,但可用字节数为0)

一旦“选择”告诉您连接已关闭,只需将其从轮询文件描述符列表中删除,然后继续向其他描述符写入。每个文件都需要自己的状态,即您已写入的字节数,因为它们可能以不同的速率流动