分别发送/接收数据

时间:2014-03-12 08:32:35

标签: c networking

从服务器说我想分别发送两个字符串,而在客户端我也是 想要单独接收它们(写入两个单独的缓冲区)。 这是正确的(唯一)方法吗?

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);

这是正确的方法吗?任何解释/阐述为什么这个工作欢迎。

1 个答案:

答案 0 :(得分:1)

很好, iff 发送方和接收方的大小与int相同的字节大小相同。

另请注意,如果您使用的是TCP套接字,则可能需要多次调用才能接收数据。