-1

我一直在为学校做一个项目,我们被分配了使用 2 个客户端和一个服务器 (TCP) 制作轮盘游戏的任务。所以我想我会为服务器和客户端做一个void函数来实现通信,但是我遇到了这个错误,找不到我搞砸的地方,如果有人知道,请告诉我!:)

客户:

void bet(int client,const int size,char message[])
{
    char to_server[size];
    if (recv(client,message,size,0) < 0)
    {
        Receive_Error obj;
        throw obj;
    }
    std::cout << message << std::endl;
    std::cin >>to_server;
    if (send(client,to_server,sizeof(to_server),0) < 0)
    {
        Send_Error obj;
        throw obj;
    }
}

服务器 :

void bet(int client,char message[],const int size)
{
    char to_client[size] = "Mire fogad ?\nColor[b/r] + Number [0-9] + Bet\n";
    if (send(client,to_client,sizeof(to_client),0) < 0)
    {
        Send_Error obj;
        throw obj;
    }
    if (recv(client,&message,size,0) < 0)
    {
        Receive_Error obj;
        throw obj;
    }
    std::cout << message ;

}

在双方中,“消息”变量如下所示:

char* message = new char[size];
for ( not important )
{
   bet(client_socket,message,size)
}
delete[] message;

size 是一个 const int,值为 256;PS:我标记 C 和 C++ 的原因是因为它是使用 C 函数的要求(包含在 sys/socket.h,sys/types.h,netinet/in.h 中)但我主要研究 C++ ,所以我正在尝试偷工减料。

4

1 回答 1

0

好吧,过了很长一段时间,即使是 100 也太大了缓冲,所以我把它降低到 50 。

于 2018-05-07T15:34:13.447 回答