我一直在为学校做一个项目,我们被分配了使用 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++ ,所以我正在尝试偷工减料。