0
私はudpソケットに奇妙な問題があります。まず第一に、私はコードを提供してみましょう:UDPソケットの問題
サーバー側:
UdpClient udpClient = new UdpClient(UdpPort);
udpClient.Connect(pendingClient.IpEndPoint, pendingClient.UdpPort);
foreach (int frameNumber in pendingClient.FramesToSend)
{
byte[] frameBytes = ...
udpClient.Send(frameBytes, frameBytes.Length);
}
udpClient.Close();
クライアント側:
using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp))
{
socket.Bind(new IPEndPoint(IPAddress.Any, UdpPort));
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000);
Console.WriteLine("Receiving frames");
while (!_sendingCompleted)
{
byte[] receive = new byte[Constants.FrameSize + Frame.HeaderSizeBytes];
try
{
socket.Receive(receive);
}
catch (SocketException exception)
{
if (exception.SocketErrorCode == SocketError.TimedOut)
{
break;
}
throw;
}
...
}
問題がある:私は、サーバーからクライアントに初めてに送信しないときすべてが完璧に機能しますが、私がそれを2番目の時に行うと、クライアントは何も受け取りません。その問題の原因は何か、それをどうすれば解決できますか?
多くのありがとうございます。