c - C语言客户端-服务器编程中发送字符串

标签 c sockets

我目前正在做套接字编程。现在,可以在客户端-服务器之间轻松发送和接收字节。 现在,我想在客户端服务器之间发送字符串。

我使用的代码是(客户端):

    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/

相关文章:

c - 我的 vector 大小加倍的函数似乎不起作用

C - 字符串数组(二维数组)和内存分配给我带来了不需要的字符

sockets - 我如何在 Flutter web 中使用套接字

java - Java 客户端连接到本地主机时出现无法解释的 SocketException

sockaddr_in 结构中 "localhost"的 C Linux 宏?

java - 在java中调用close()方法后操作系统需要多长时间才能关闭套接字?

c - 缺少 locale_t

c - 嵌套函数被禁用错误

c - 将值从结构分配给 C 中的数组

python 套接字卡在连接上