22using System . Collections . Generic ;
33using System . Net ;
44using System . Net . Sockets ;
5+ using System . Threading ;
56using System . Threading . Tasks ;
67
78namespace LucHeart . CoreOSC ;
@@ -42,14 +43,18 @@ public OscListener(IPEndPoint listenerEndPoint)
4243 }
4344 }
4445
45- public async Task < OscMessage > ReceiveMessageAsync ( )
46+ public async Task < OscMessage > ReceiveMessageAsync ( CancellationToken ct = default )
4647 {
4748 if ( EnableTransparentBundleToMessageConversion )
4849 {
4950 if ( MessageQueue . Count > 0 )
5051 return MessageQueue . Dequeue ( ) ;
5152
53+ #if ! NETSTANDARD
54+ var receiveResult = await UdpClient . ReceiveAsync ( ct ) ;
55+ #else
5256 var receiveResult = await UdpClient . ReceiveAsync ( ) ;
57+ #endif
5358
5459 if ( ! OscBundle . IsBundle ( receiveResult . Buffer ) )
5560 return OscMessage . ParseMessage ( receiveResult . Buffer ) ;
@@ -62,29 +67,44 @@ public async Task<OscMessage> ReceiveMessageAsync()
6267 }
6368 else
6469 {
70+ #if ! NETSTANDARD
71+ var receiveResult = await UdpClient . ReceiveAsync ( ct ) ;
72+ #else
6573 var receiveResult = await UdpClient . ReceiveAsync ( ) ;
74+ #endif
6675 return OscMessage . ParseMessage ( receiveResult . Buffer ) ;
6776 }
6877 }
6978
70- public async Task < ( OscMessage Message , IPEndPoint EndPoint ) > ReceiveMessageExAsync ( )
79+ public async Task < ( OscMessage Message , IPEndPoint EndPoint ) > ReceiveMessageExAsync ( CancellationToken ct = default )
7180 {
81+ #if ! NETSTANDARD
82+ var receiveResult = await UdpClient . ReceiveAsync ( ct ) ;
83+ #else
7284 var receiveResult = await UdpClient . ReceiveAsync ( ) ;
85+ #endif
7386 return ( OscMessage . ParseMessage ( receiveResult . Buffer ) , receiveResult . RemoteEndPoint ) ;
7487 }
7588
76- public async Task < OscBundle > ReceiveBundleAsync ( )
89+ public async Task < OscBundle > ReceiveBundleAsync ( CancellationToken ct = default )
7790 {
91+ #if ! NETSTANDARD
92+ var receiveResult = await UdpClient . ReceiveAsync ( ct ) ;
93+ #else
7894 var receiveResult = await UdpClient . ReceiveAsync ( ) ;
95+ #endif
7996 return OscBundle . ParseBundle ( receiveResult . Buffer ) ;
8097 }
8198
82- public async Task < ( OscBundle Bundle , IPEndPoint EndPoint ) > ReceiveBundleExAsync ( )
99+ public async Task < ( OscBundle Bundle , IPEndPoint EndPoint ) > ReceiveBundleExAsync ( CancellationToken ct = default )
83100 {
101+ #if ! NETSTANDARD
102+ var receiveResult = await UdpClient . ReceiveAsync ( ct ) ;
103+ #else
84104 var receiveResult = await UdpClient . ReceiveAsync ( ) ;
105+ #endif
85106 return ( OscBundle . ParseBundle ( receiveResult . Buffer ) , receiveResult . RemoteEndPoint ) ;
86107 }
87-
88108 public void Dispose ( )
89109 {
90110 UdpClient . Dispose ( ) ;
0 commit comments