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 ago.
UDP sockets with http server
Hi, I have made a http webserver which is offering a web page, it is working fine :)
Now i want to integrate the udp socket with my server so that i can receive the udp packets from the udp servers.
Issue is when i tries to receives the udp message, it stucks the webpage mainly because it is waiting for the udp packet to receive so it not allows the rest of the code to execute to refresh the webpage. In order to refresh the page i need to send the udp packets. So in order to refresh the webpage udp socket needs to receive packets continuously. Here is a piece of code i am using to receive the udp packet
UDPSocket server; // server.set_blocking(false,1000); server.bind(ECHO_SERVER_PORT); Endpoint client; char buffer[512]; printf("\nWait for packet...\n"); int n = server.receiveFrom(client, buffer, sizeof(buffer)); printf("Received packet from: %s\n", client.get_address()); printf("n is %d \n",n); printf(buffer);
My tcp server which is to server the webpage is developed by the following code :
void handleHTTPRequest(TCPSocketConnection *client) { char * reqline[1]; char * cgiTok; int i = 0; char paramBuf[80]; int bytesRecvd; char tempStr[80]; //PF was 26 memset(requestBuffer,0,sizeof (requestBuffer)); bytesRecvd = client->receive(requestBuffer, sizeof(requestBuffer)); printf("handleHTTPRequest\r\n"); if(bytesRecvd > 0) { // Received some data, check it and send data back reqline[0] = strstr(requestBuffer, "GET"); if ( reqline[0] != NULL ) { if (strstr (requestBuffer, "HTTP/1.0") != NULL && strstr (requestBuffer, "HTTP/1.1") != NULL ) { client->send_all("HTTP/1.0 400 Bad Request\n", 25); } ...// rest of code
Is there any solution for it, that I only receive the udp packet once it is ready to receive. I need solution like this :
if (socket is readable) int n = server.receiveFrom(client, buffer, sizeof(buffer));
thanks in advance