Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years, 3 months ago.
UDPSocket implementation question
I'm using mbed's release of the SDK dated 2014-06-25 and I'm having a problem understanding the implementation of the sendto() and recvfrom() methods in the UDPSocket class.
In particular the timeout functionality used for the blocking/non-blocking feature.
Here is the code in mbed:
Code snippet from UDPSocket.cpp
int UDPSocket::receiveFrom(Endpoint &remote, char *buffer, int length) { if (_sock_fd < 0) return -1; if (!_blocking) { TimeInterval timeout(_timeout); if (wait_readable(timeout) != 0) return 0; } remote.reset_address(); socklen_t remoteHostLen = sizeof(remote._remoteHost); return lwip_recvfrom(_sock_fd, buffer, length, 0, (struct sockaddr*) &remote._remoteHost, &remoteHostLen); }
Now, if "_blocking" is set to true, you do not test for the timeout interval... correct? What am I missing? Shouldn't the "!" character be removed?
Cheers!!
Sorry for the format, it appears your widget removed a lot of CR characters. If you can browse your own repo then have a look at file: UDPSocket.cpp and either method at line: 68 or line 82.
Cheers!!
Fixed it!!
Cheers!!
posted by John Dowd 22 Aug 2014