在while循环中发送()Recv()

时间:2017-05-20 18:13:27

标签: c sockets

我正在使用c中的套接字编写服务器/客户端聊天程序。一切都很好,除了服务器端的打印,它打印客户端在第二个recv()之前发送的用户名。但我的印刷品是在第二次回收之后。它应首先从客户端读取消息,然后打印类似

的内容
  乔治:嗨

而不是

  

乔治:

     乔治:嗨

我做错了什么?提前致谢

服务器

recv(newSocket,name,sizeof(name),0);

while(1){
    recv(newSocket,buffer,sizeof(buffer),0);
    if (strcmp(buffer,"exit\n")==0){
       printf("%s logout\n",name);
       break;}
else
    printf("%s:%s",name,buffer);
}

客户端

printf("Give a username");
scanf("%s",name);
send(clientSocket,name,sizeof(name),0);

while(1){
   fgets(buffer,sizeof(buffer),stdin);
   send(clientSocket,buffer,sizeof(buffer),0);
   if (strcmp(buffer,"exit\n")==0)
      break;
}

0 个答案:

没有答案