C++服务器/客户端回显某些输入末尾附加的奇怪字符
C++ Server/Client echo strange characters appended to the end for certain input
对于我的回显服务器/客户端,当我的客户端与我的服务器通信时,服务器回显的末尾总是有一些奇怪的额外字符。
客户端(发送):
string input;
while(srnet>0&&start){
cout<<"[Enter to Send]..."<<endl;
getline(cin,input);
if(!strcmp(input.c_str(),"quit")) break; else
srnet=send(conn, input.c_str(),input.length(), 0 );
}
客户端(接收中)
while(rnet>0&&start){
char* recvbuf=new char[DEFAULT_BUFLEN];
rnet = recv(conn, recvbuf, recvbuflen, 0);
if (rnet > 0) printf("[RECR %s] %sn", ip.c_str(),recvbuf);
delete recvbuf;
}
服务器:
rnet = recv(conn, recvbuf, recvbuflen, 0);
if (rnet > 0) {
srnet=send(conn, recvbuf, rnet, 0 );
if ( srnet== SOCKET_ERROR) {
printf("[COMM] send failed with error: %dn", WSAGetLastError());
closesocket(conn);
break;
}
输出:
dadada
[Enter to Send]...
[RECR localhost:4666] dadadap
fdsfdfd
[Enter to Send]...
[RECR localhost:4666] fdsfdfd
asdsa
[Enter to Send]...
[RECR localhost:4666] asdsap
asdsa
[Enter to Send]...
[RECR localhost:4666] asdsap
aaa
[Enter to Send]...
[RECR localhost:4666] aaa
asdsa
[Enter to Send]...
[RECR localhost:4666] asdsap
请注意,每次都会将额外的 p 附加到输入"asdsa"上。而其他输入如"aaa"很好。
有什么想法吗?
问题是在客户端,您没有在通过printf
打印条目之前