信息:我工作在一個VOIP應用程序。UDP套接字返回數據包的一部分
我使用C#Socket類並將它初始化爲UDP套接字。
我對接收代碼:
if(socket.Poll(-1,SelectMode.SelectRead)){
if(!socket.Connected){
return;
}
Console.WriteLine(" AVAIL:"+socket.Available);
int count = socket.ReceiveFrom (data, ref endpoint);
Console.WriteLine("LENGTH:"+count);
receivedEvent.Reuse (socket, data, count, (IPEndPoint)endpoint);
receivedFunction (receivedEvent);
}
我發送代碼:
int cnt = socket.SendTo (data, length, SocketFlags.None, ep);
if (cnt != length) {
//LOG STUFF
}
if (sendEvent != null) {
sendEvent (cnt);
}
ERROR: 我從UDP套接字得到意想不到的數據,這意味着IM發送〜100個字節的數據,但我的只能得到31.哪一個是錯誤的=>我認爲UDP總是會給我全部或者全無。我錯了嗎 ?
所以我的問題是,UDP不應該可靠的數據包的意義?像我只應該得到有效或沒有數據包?
我似乎有另一個問題(不知道它是否連接到我當前的問題?),約30分鐘後,我的套接字只返回10作爲從套接字讀取數據的計數。
你的錯誤是什麼 –
@ShahroozJefriㇱ現在好了嗎? – Michiluki
請把你錯誤 –