微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在套接字中发送多个 buf?

如何解决如何在套接字中发送多个 buf?

我正在做一个套接字程序,包括客户端和服务器部分。它工作得很好,但是当我尝试放置两个连续的 send() 并在另一部分放置两个 recv() 时,问题就出现了。当我发送第一条消息时,它工作正常,但是当我发送第二条消息时,具有 recv 功能(客户端)的部分滞后,甚至没有收到消息。我不知道为什么会发生这种情况,所以我很乐意提供任何帮助。套接字是 TCP。

服务器

            std::cout << "Conectado\n";
            std::cout << "Press 1 to delete a directory\n";
            std::cout << "Press 2 to create a directory\n";
            char msg[256] = "";
            std::cin.getline(msg,sizeof(msg));
            send(newConnection,msg,sizeof(msg),NULL);
            if (msg[0] == '1') {
                //this works well
            }
            else if (msg[0] == '2') {
                std::cout << "Folder name \n";
                std::cin.getline(msg,sizeof(msg));
                send(newConnection,NULL);
                std::cout << "Rute name \n";
                std::cin.getline(msg,NULL);
            }
        }
    }

客户


            std::cout << "Soy cliente\n";
            char msg[256] = "";
            recv(Connection,NULL);
            std::cout << msg << std::endl;
            //borrar directorios
            if (msg[0] == '1') { 
                //this is ok
            }
            else if (msg[0] == '2') {
                recv(Connection,NULL);
                std::string folder = msg;
                std::cout << folder << std::endl;
                recv(Connection,NULL);
                std::string rute = msg;
                std::cout << rute << std::endl;
            }
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。