Hello all, I am getting a very strange error in my code :( I am writing a server application in C, to send and receive UDP packets to/from a client. Right now, im just running a loop in which the server receives packets using recvfrom() however.... the function seems to block and everytime I send it something, it sets errno to "resource temporarily unavailable" which is strange, cause it blocks until I send something, meaning that it knows something came no? However, recvfrom always returns -1 This is how I initialized the socket:
and then I ran: do { done = recvData(); printf("Received %d n", done);
}while(done == 0);
with recvData() being:
int recvData(void) { if (recvfrom(s, (char*)&buf, UDP_BUFFER_LEN, 0, (struct sockaddr*) &si_other_comp, &slen)==-1) { printf("Couldn't read socket (%s)n",strerror(errno)); return 0; }
return 1; }
so, program does nothing until it gets a packet, then says it cant read it and then continues doing nothing until it gets another packet.... any ideas?