UDP Socket schließen?

MD1978

Erfahrenes Mitglied
Hallo, ich möchte eine UDP-Verbinung wieder schließen:

Socket soUDP = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);IPEndPoint localIpEndPoint = new IPEndPoint(localHostEntry.AddressList[0], UDPPort);
soUDP.Bind(localIpEndPoint);


while (true)
{
Byte[] received = new Byte[256];
IPEndPoint tmpIpEndPoint = new IPEndPoint(localHostEntry.AddressList[0], UDPPort);
EndPoint remoteEP = (tmpIpEndPoint);
int bytesReceived = soUDP.ReceiveFrom(received, ref remoteEP);
...
}

Das Programm blockiert ja immer in der ReceiveFrom Zeile und wartet dort auf eine UDP-Anfrage. Wenn ich jetzt den Socket soUDP von einer anderen Stelle aus mit close() beenden möchte, erhalte ich folgende Exception:
"System.SystemException {"Ein Blockierungsvorgang wurde durch einen Aufruf von WSACancelBlockingCall unterbrochen"} System.SystemException".

Wie kann ich den UDP Socket beenden?

Gruss,

MD

 
Hast Du schon mal das hier:
Code:
Socket.Blocking = false;
versucht?
Schreib Dir eine ClientManager Klasse und führ sie in einem Thread aus. Dann blockiert dein Prog auch nicht mehr.

MFG cosmo
 

Neue Beiträge

Zurück