从服务器说我想分别发送两个字符串,而在客户端我也是 想要单独接收它们(写入两个单独的缓冲区)。 这是正确的(唯一)方法吗?
Sever的:
char *user1= "nick";
char *user2 = "david";
send(socket, strlen(user1), 4/*assuming int is 4 bytes on sending/receiving machine*/, 0);
send(socket, user1, strlen(user1), 0);
send(socket, strlen(user2), 4, 0);
send(socket, user2 , strlen(user2), 0);
客户端:
char user1[256],user2[256];
int x,y;
// User 1
recv(socket, &x, 4, 0);
recv(socket, user1, x, 0);
// User 2
recv(socket, &y, 4, 0);
recv(socket, user2, y, 0);
这是正确的方法吗?任何解释/阐述为什么这个工作欢迎。
答案 0 :(得分:1)
很好, iff 发送方和接收方的大小与int
,和相同的字节大小相同。
另请注意,如果您使用的是TCP套接字,则可能需要多次调用才能接收数据。