Hi,
I'm writing a UDP Listener to monitor all incoming UDP messages:
private void ReceiveThreadFk t()
{
EndPoint recEP =new IPEndPoint(IPAd dress.Any,6000) ;
while(false == receiveThreadAb ort)
{
// Allow thread to sleep completely
if(receiveThrea dSleep == false)
{
// Read data if available, else sleep 10 ms
if((0 != udpSocket.Avail able))
{
byte[] buffer = new byte[udpSocket.Avail able];
udpSocket.Recei veFrom(buffer,r ef recEP);
ReceiveQueueEle ment newElement = new
ReceiveQueueEle ment(buffer,(IP EndPoint)recEP) ;
lock(receiveQue ue.SyncRoot)
{
receiveQueue.En queue(newElemen t);
}
}
else
{ //no bytes available -> sleep 10 ms
Thread.Sleep(10 );
}
}
else
{ // if suspended, sleep for 0.3 seconds
Thread.Sleep(30 0);
}
}
}
As you can see, this thread can be set to a kind of sleep mode, but when it
is waken up again, all the udp messages stored within the socket are read out.
Is there a possibility to clear the socket's internal buffer, so that the
data which arrived while in sleep mode can be flushed??
Thanks,
Robin
I'm writing a UDP Listener to monitor all incoming UDP messages:
private void ReceiveThreadFk t()
{
EndPoint recEP =new IPEndPoint(IPAd dress.Any,6000) ;
while(false == receiveThreadAb ort)
{
// Allow thread to sleep completely
if(receiveThrea dSleep == false)
{
// Read data if available, else sleep 10 ms
if((0 != udpSocket.Avail able))
{
byte[] buffer = new byte[udpSocket.Avail able];
udpSocket.Recei veFrom(buffer,r ef recEP);
ReceiveQueueEle ment newElement = new
ReceiveQueueEle ment(buffer,(IP EndPoint)recEP) ;
lock(receiveQue ue.SyncRoot)
{
receiveQueue.En queue(newElemen t);
}
}
else
{ //no bytes available -> sleep 10 ms
Thread.Sleep(10 );
}
}
else
{ // if suspended, sleep for 0.3 seconds
Thread.Sleep(30 0);
}
}
}
As you can see, this thread can be set to a kind of sleep mode, but when it
is waken up again, all the udp messages stored within the socket are read out.
Is there a possibility to clear the socket's internal buffer, so that the
data which arrived while in sleep mode can be flushed??
Thanks,
Robin