UDP server recvfrom() always returns -1? :(


Posted on 16th Feb 2014 07:03 pm by admin

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:

//struct timeval tv;

if((s = socket(AF_INET, SOCK_DGRAM, 0))==-1)
return 0;

bzero(&si_me,sizeof(si_me));
si_me.sin_family = AF_INET;
si_me.sin_port = htons(PORT);
si_me.sin_addr.s_addr = htonl(INADDR_ANY);

/*** Set socket timeout ***
tv.tv_sec = 1;
tv.tv_usec = 0;
if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) < 0)
{
printf("Couldn't set socket timeoutn");
return 0;
}*/

if(bind(s,(struct sockaddr*) &si_me, sizeof(si_me))==-1)
return 0;

return 1;

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?

No comments posted yet

Your Answer:

Login to answer
125 Like 16 Dislike
Previous forums Next forums
Other forums

Day of week
I am using PHP version 5.0.5
I have a varaible ($DATE (date format yyyy-mm-dd)) that is being inc

Help with setcookie()
Merry Xmas to those on this foruum
Older guy here with some experience but not allot so please be

help retrieiving results and doing pagination
Having some trouble trying to get the results to show on more than just one page.

What is ha

error with opendir
when i do this

if ($handle = opendir($dir)) {
while (false !== ($file = readdir($han

Redistributing dependent dlls
Hai all ,

I have created an application in VC++ using VS2008 in a development machine which r

What are causes of a connection-timeout with fopen()?
Hello! Here is the situation: The server I host my website on just upgraded it's PHP build from 4.4.

Undefined index: username HELP NEWBIE
I am trying a simple login/logout for my website. It works well with checking if the username exists

get font info from a font file
hello,

Does anyone know how to get font info from a font file ... using php of course !
<

path to include folder
Hi everyone,

When I'm testing locally, I have to add the name of the site folder as part of t

ECC6 - Single sign-on
We are in the process of upgrading to ECC 6 which will support single sign on with user passwords al

Sign up to write
Sign up now if you have flare of writing..
Login   |   Register
Follow Us
Indyaspeak @ Facebook Indyaspeak @ Twitter Indyaspeak @ Pinterest RSS



Play Free Quiz and Win Cash