我有一个TCP服务器和客户端,并带有已建立的套接字。比方说,我有以下情况:分别通过TCP套接字发送和接收字符串
SERVER:
char *fn = "John";
char *ln = "Doe";
char buffer[512];
strcpy(buffer, fn);
send(*socket, buffer, strlen(buffer), 0);
strcpy(buffer, ln);
send(*socket, buffer, strlen(buffer), 0);
客户:
char *fn;
char *ln;
char buffer[512];
bytes = recv(*socket, buffer, sizeof(buffer), 0);
buffer[bytes] = '\0';
strcpy(fn, buffer);
bytes = recv(*socket, buffer, sizeof(buffer), 0);
buffer[bytes] = '\0';
strcpy(ln, buffer);
printf("%s", fn);
printf("%s", ln);
预期结果: 我想单独接收每个字符串(如我在不同的变量保存它们),而是第一个recv()将fn“John”和ln“Doe”连接成“JohnDoe”,并且程序被卡住在第二个recv()上,因为我已经完成了发送。
我试过如下: - 添加\ 0到F