[英]When reading string from a socket, the first character is not printed
用户输入将插入到“缓冲区”中。
while(1)
{
puts("\n#listening");
puts("#Enter your message:");
fgets(buffer,255,stdin);
int n = write(s,buffer,strlen(buffer));// char buffer[512];
printf("\n>> Writing to server: %d bytes",n);
int r = read(s,buffer,strlen(buffer));
if(r > 0)
{
printf("\n>> Reading from server: %d :%s",r,buffer);
}
}
#listening
#Enter your message:
Hello World!
>> Writing to server: 13 bytes
>> Reading from server: 12 :ello World!
如您所见,第一个'H'未打印。
这段代码有问题,但是没有一个会删除接收到的消息中的第一个字符。
它是套接字远端的“服务器”程序,负责丢失字符。
printf()
语句的末尾 ,它更干净,将帮助您进行调试。 write()
处有13个字节的原因; 这可能会干扰您在控制台上进行打印的方式。 总而言之,我认为您会获得“ H”字样,但打印不正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.