@JonB you might be right. http://www.informit.com/articles/article.aspx?p=1405552&seqNum=4 in fact I could see that if there is pending datagram, read it, and then again, and as well process after each if statement. Ok. I understand it now.