我必须将输出连接fgets
到int
(clientid
),并将其存储在char[1024]
缓冲区中。
这是我的代码:
clientid = rand() % 256;
while(1)
{
cout<<"Client: Enter Data for Client=";
fgets(buffer,MAXSIZE-1,stdin);
if((send(sockfd,buffer,strlen(buffer),0))==-1)
{
cout<<"Failure Sending Message";
close(sockfd);
exit(1);
}
else
{
cout<<"Client:Message being sent:"<<buffer;
num=recv(sockfd,buffer,sizeof(buffer),0);
if(num<=0)
{
cout<<"either connection close or Error";
break;
}
buffer[num]='\0';
cout<<"Client:message received from Server:"<<buffer<<endl;
}
}
close(sockfd);
return 0;
如何clientid
从服务器端的消息中提取?
您可以将其添加到缓冲区本身的开头。例如,如果您的clientid为123,则可以发送“ 123:Message”,其中“:”可以用作分隔符。这意味着您应该在缓冲区中而不是从头开始读取那么多的数字。
snprintf (buffer, sizeof(buffer), "%d:", clientid); // Add the clientid at the beginning before reading
fgets(buffer + strlen (buffer),MAXSIZE-1,stdin);// Move by the len of buffer which contains clientid
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句