我目前正在做套接字编程。现在,可以在客户端-服务器之间轻松发送和接收字节。 现在,我想在客户端服务器之间发送字符串。
我使用的代码是(客户端):
strcpy(recvbuf, sendbuf);
send(ConnectSocket, recvbuf, strlen(recvbuf), 0);
printf("\nSending string...");
(服务器)
iResult = recv(ClientSocket, recvbuf, sizeof(recvbuf) -1, 0);
recvbuf[iResult]= '\0';
strcpy(sendbuf2, recvbuf);
printf("String recieved = %s", sendbuf2);
但是,它没有显示正确的结果。 有任何链接可以帮助我吗?
最佳答案
首先字符串也是字节。只要您可以轻松地发送/接收字节,就像发送/接收字符串一样。
更多提示。您应该了解您正在使用的 TCP 或 UDP。对于UDP,每个send()发送一个数据包,recv()接收一次数据包。但tcp是字节流。这意味着 send() 只是将一些字节写入流中,并且您无法预期 recv() 在返回之前将实际接收多少字节。您必须设计一种机制来从字节流中解码数据包。说你的情况,你可以使用'\0'来分割字符串包。
关于c - C语言客户端-服务器编程中发送字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142278/