如何在套接字中发送多个 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 (将#修改为@)