所以我几乎完成了一个涉及Win32编程和套接字的任务,但是我必须生成并分析一些关于传输的统计信息。我唯一遇到的问题是如何计算从客户端发送到服务器的数据包数量。统计从客户端发送到服务器的数据包数量?
发送的数据可以是可变长度的,所以我不能只将接收到的总字节数除以#define'd值。
我们必须使用异步调用做的一切,所以我一直在试图增加每FD_READ消息,我得到了服务器的套接字的计数器。但是,因为我必须能够接受可能较大的文件大小,所以我必须调用recv/recvfrom,缓冲区大小为64k左右。如果我发送一个小包(a-z),就没有问题。但是,如果我发送一个1024个字符的字符串10x,则服务器会报告收到的2或3个数据包,但发送/接收的字节数据丢失为0%。
任何想法如何获得数据包的数量?
感谢提前:)
我假定这是一个流套接字(即TCP),而不是一个数据报套接字(即UDP)? ...问题是你正在接收流片段而不是数据包。 – 2009-02-25 16:56:06
我们实际上必须实现TCP和UDP。我不太清楚你的流片段是什么意思,但是数据全部被读取 - 它只是被排队等待直到我调用recv/recvfrom,然后它尽可能多地抓取它。我需要围绕这个来计算。 – David 2009-02-25 17:05:57