Re: sockets
From: ZoombyWoof (zoombywoofremove_at_thishotmail.com)
Date: 07/07/04
- Next message: Yas: "Re: simple Network Bridge?"
- Previous message: 187: "simple Network Bridge?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Wed, 07 Jul 2004 10:54:34 +0200
Sam wrote:
> 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 ?
Your server closes the socket after the first message is received.
From the code you provided the client does NOT open a new connection
before the second message is sent to the server. Skip the close (sd_client)
in your server loop if you dont make a new connection before the second
call in the client.
/ZW
- Next message: Yas: "Re: simple Network Bridge?"
- Previous message: 187: "simple Network Bridge?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|