gpt4 book ai didi

c - 双发送/接收问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:47 24 4
gpt4 key购买 nike

我有发送/接收问题:如果客户端发送两个字符串,服务器只在一个接收中接收这两个字符串,而第二个接收来自客户端的第三次发送(我不想发送)。我想发送 2 个字符串并接收 2 个字符串。我该怎么办?

我的代码:客户

char login[] = "admin";
char password[] = "admin";

send(sd, login, strlen(login), 0);
send(sd, password, strlen(password), 0);

服务器:

bzero(login,MAX);
bzero(password,MAX);

recv(sd_client, login, sizeof(login), 0);
recv(sd_client, password, sizeof(password), 0);

最佳答案

TCP 无法发送/接收字符串。 TCP 不能发送/接收长度超过一个字节的消息。 TCP 不能发送/接收长度超过一个字节的结构。

TCP 传输是一个字节流。

如果你想传输任何比一个字节更复杂的东西,你需要一个额外的协议(protocol)在上面,因此 HTTP、SMTP 等协议(protocol)。

例如,如果您特别想发送以 null 结尾的字符串,您需要缓冲和连接接收到的数据,直到检测到 null - 然后您就有了“C”风格的字符串,可以继续组装下一个字符串。

Rgds,马丁

关于c - 双发送/接收问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11483159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com