我每 1 秒调用一次选择系统调用。如果两个或更多数据包在一秒内到达。 read() 将其视为一个数据包。我想知道有多少已经到达并分别读取每个数据包?请通过不减少该时间“1 秒”来解决问题。
最佳答案
TCP 是一种流 协议(protocol),它不会在应用程序级别公开单个数据包。
如果您需要处理单个数据包,则需要切换到数据报 协议(protocol),例如专为此类用途设计的 UDP。但是请注意,这将需要更改发送方和接收方代码,以及重新设计协议(protocol)以手动处理重传。
关于c - 在 tcp 服务器中,每隔一秒调用一次 select()。如何区分两个或多个到达 "1 second"的数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20324386/