Vor einiger Zeit war ich gezwungen eine, auf UDP basierende Server-Client Applikation mit Broadcast-Funktionaltität zu schreiben, im Zuge dieser Applikation ist das nachfolgende Snippet entstanden. Es erweitert den vorhanden UDPClient des .Net-Frameworks um eine Option ein Timout anzugeben - verwendet wurde dies als Alternative für die asynchronen Methodenaufrufe, wie sie laut Microsoft zu implementieren sind. Ein interessanter Artikel dazu und nachfolgend das Snippet:
1: namespace ExtendedCommunicationLib 2: { 3: //Handles a UDP Connection 4: public class UDPTimeoutClient 5: { 6: //UDP Socket 7: private Socket udpClient = new Socket( 8: AddressFamily.InterNetwork, 9: SocketType.Dgram, 10: ProtocolType.Udp); 11: 12: //UDP ClientSocket 13: public Socket Client 14: { 15: get { return udpClient; } 16: } 17: 18: public UDPTimeoutClient(Int16 timeout) 19: { 20: udpClient.SetSocketOption( 21: SocketOptionLevel.Socket, 22: SocketOptionName.ReceiveTimeout, 23: timeout); 24: } 25: } 23: }
Verfasst von mariofraiss