这是我下面的一段代码,我创建了一个可以相互通信的服务器和客户端。一切正常但是当我在我的消息中添加空格字符时,程序将它们视为两个不同的字符串,这意味着两个不同的消息。
所以当我输入Hello
时,我会回来
Content-Length: 5;Hello
但是当我输入Hello dude
时,我会回来
Content-Length: 5;Hello
Content-Length: 4;dude
以下是发送邮件的客户端的源代码。要接收我创建线程的消息,但它们都可以正常工作。我假设这与send()
函数如何处理空格字符有关。我的问题是,如何将其视为一个真正的角色?
char msgtobesent[256];
memset(msgtobesent, '\0', 256);
while(TRUE){
scanf("%s", msgtobesent);
int ll = strlen(msgtobesent);
char theTotalMessage[19];
// memset(theTotalMessage, '\0', sizeof(theTotalMessage));
sprintf(theTotalMessage, "Content-Length: %d;", ll);
strcat(theTotalMessage, msgtobesent);
printf("theTotalMessage: %s\n", theTotalMessage);
send(connection, theTotalMessage, strlen(theTotalMessage) + 1, 0);
}