Sam
07-25-2004, 01:36 AM
Hi guys, Just a problem with sockets
I've done a little C client/server
Server side, "classic" :
....
while (true)
{
sd_client = accept(sd,(struct sockaddr *)&cin,&addrlen);
n = recv(sd_client,buffer,sizeof(buffer),0);
buffer[n]=0;
printf("from cli : %s\n", buffer);
sprintf(buffer, "ok %d\n", j++);
if (send(sd_client,buffer,strlen(buffer),0) == -1)
{
perror("send");
exit(1);
}
close (sd_client);
}
But now, when I try to connect to the client:
First connection works perfectly (server receives my stream)
n = send(sd, "hello",strlen("hello"),0);
n = recv(sd, buffer, bufsize,0);
buffer[n]=0;
printf ("from srv : %s\n",buffer);
Now, after that, if I try (again)
n = send(sd, "test 2",strlen("test 2"),0);
n = recv(sd, buffer, bufsize,0);
buffer[n]=0;
printf ("from srv : %s\n",buffer);
This time server doesn't receive datas at all ???
Where is my mistake ?
thanx
I've done a little C client/server
Server side, "classic" :
....
while (true)
{
sd_client = accept(sd,(struct sockaddr *)&cin,&addrlen);
n = recv(sd_client,buffer,sizeof(buffer),0);
buffer[n]=0;
printf("from cli : %s\n", buffer);
sprintf(buffer, "ok %d\n", j++);
if (send(sd_client,buffer,strlen(buffer),0) == -1)
{
perror("send");
exit(1);
}
close (sd_client);
}
But now, when I try to connect to the client:
First connection works perfectly (server receives my stream)
n = send(sd, "hello",strlen("hello"),0);
n = recv(sd, buffer, bufsize,0);
buffer[n]=0;
printf ("from srv : %s\n",buffer);
Now, after that, if I try (again)
n = send(sd, "test 2",strlen("test 2"),0);
n = recv(sd, buffer, bufsize,0);
buffer[n]=0;
printf ("from srv : %s\n",buffer);
This time server doesn't receive datas at all ???
Where is my mistake ?
thanx