1
+ void OnServerDataReceived (
2
+ byte [ ] data )
3
+ {
4
+ Console . WriteLine ( $ "Server received Data Length: { data . Length } ") ;
5
+ var dataStr = Encoding . ASCII
6
+ . GetString ( data )
7
+ . RemoveNonPrintableCharacter ( ) ;
8
+ Console . WriteLine ( $ "Server received Data: { dataStr } ") ;
9
+ }
10
+
11
+ void OnClientDataReceived (
12
+ byte [ ] data )
13
+ {
14
+ Console . WriteLine ( $ "Client received Data Length: { data . Length } ") ;
15
+ var dataStr = Encoding . ASCII
16
+ . GetString ( data )
17
+ . RemoveNonPrintableCharacter ( ) ;
18
+ Console . WriteLine ( $ "Client received Data: { dataStr } ") ;
19
+ }
20
+
21
+ using var loggerFactory = LoggerFactory . Create ( builder =>
22
+ {
23
+ builder . SetMinimumLevel ( LogLevel . Trace ) ;
24
+ builder . AddConsole ( ) ;
25
+ } ) ;
26
+
27
+ var loggerServer = loggerFactory . CreateLogger < UdpServer > ( ) ;
28
+ var loggerClient = loggerFactory . CreateLogger < UdpClient > ( ) ;
29
+
30
+ var udpServer = new UdpServer (
31
+ loggerServer ,
32
+ new IPEndPoint ( IPAddress . Parse ( "127.0.0.1" ) , 27001 ) ,
33
+ new UdpServerConfig
34
+ {
35
+ EchoOnReceivedData = true ,
36
+ } ) ;
37
+
38
+ udpServer . DataReceived += OnServerDataReceived ;
39
+
40
+ await udpServer . StartAsync ( CancellationToken . None ) ;
41
+
42
+ var udpClient = new UdpClient (
43
+ loggerClient ,
44
+ new IPEndPoint ( IPAddress . Parse ( "127.0.0.1" ) , 27001 ) ,
45
+ 27002 ) ;
46
+
47
+ udpClient . Connected += ( ) => Console . WriteLine ( "Connected" ) ;
48
+ udpClient . Disconnected += ( ) => Console . WriteLine ( "Disconnected" ) ;
49
+ udpClient . ConnectionStateChanged += ( _ , args ) => Console . WriteLine ( $ "Connection state: { args . State } ") ;
50
+ udpClient . DataReceived += OnClientDataReceived ;
51
+ if ( ! await udpClient . Connect ( ) )
52
+ {
53
+ Console . WriteLine ( "Cannot connect" ) ;
54
+ udpClient . Dispose ( ) ;
55
+ return ;
56
+ }
57
+
58
+ await udpClient . Send ( "Hallo" , CancellationToken . None ) ;
59
+ await udpClient . Send ( "World.." , CancellationToken . None ) ;
60
+ await udpClient . Send ( "ping" , CancellationToken . None ) ;
61
+ await udpServer . Send ( new IPEndPoint ( IPAddress . Parse ( "127.0.0.1" ) , 27002 ) , "The UdpServer say hallo" , CancellationToken . None ) ;
62
+
63
+ await Task . Delay ( TimeSpan . FromMilliseconds ( 500 ) ) ;
64
+
65
+ await udpClient . Disconnect ( ) ;
66
+ udpClient . Dispose ( ) ;
67
+
68
+ await udpServer . StopAsync ( CancellationToken . None ) ;
69
+ udpServer . Dispose ( ) ;
70
+
71
+ Console . WriteLine ( "Press any key for quit" ) ;
72
+ Console . ReadLine ( ) ;
0 commit comments