我正在使用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;
}