我一直致力于一个学校项目,我们已经分配了与2个客户端和一个服务器(TCP)进行轮盘游戏的任务。 所以我认为我为服务器和客户端制作了一个无效功能,以实现通信,但我遇到了这个错误,无法找到我弄乱的地方,如果有人知道的话,请让我知道! :)
客户端:
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 ;
}
在双方中,&#34;消息&#34;变量看起来像这样:
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 ++,所以我正试图偷工减料。
答案 0 :(得分:0)
好的,经过很长一段时间,即使是100太多的缓冲区,所以我把它降到了50.