所以我幾乎完成了一個涉及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