정보 : 나는 VoIP 응용 프로그램에서 일하고 있습니다.UDP 소켓 패킷의 일부를 반환합니다
메신저 C# 소켓 클래스를 사용하고 그것을 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 소켓에서 데이터하지만 100 바이트의 예기치 않은 데이터를 얻을 수 31. 어느 것이 틀린가 => 나는 UDP가 항상 나에게 아무것도주지 않을 것이라고 생각했다. 내가 잘못 ?
그럼 내 질문은 UDP가 패킷의 의미에서 신뢰할 수 없습니까? 마찬가지로 유효하거나없는 패킷 만 가져야합니까?
내가 갖고있는 것 같다 또 다른 문제는 (그것이 내 현재의 문제에 연결되어 있는지 확인하지 않을 경우?), 후 ~ 삼십분 내 소켓은 소켓에서 읽을 데이터의 개수로 (10)를 반환합니다. 당신은 UDP 체크섬을 사용하지 아니하지 않는 한
오류가 무엇입니까 –
@ShahroozJefri ㇱ가 더 좋습니까? – Michiluki
오류를 넣으십시오. –