0

我在 c 中通过套接字传输 int 数组时遇到问题。htonl() 的正确用法是什么?可以说我有:

int arra[3]={6000,7000,8000};

和名为 new_socket 的套接字

我如何正确地将其传输到套接字的另一端?

客户端正在通过以下代码读取它:

char buf[BUFLEN] = "";  // buffer for recv() calls

for (i = 0; i < nbytes; i += INTLEN) {
    int file_port = ntohl(*(int *)&buf[i]);
4

1 回答 1

0
   int i, wp1, ret;
   for (i = 0; i < 3; i++) {
      wp1 = htonl(arr[i]);
      ret = write(sockfd, wp1, sizeof(int));
      //error check based on ret
   }

这行得通。TCP是一个流,一次写入或多次写入都没有关系,您可以一次读取或读取所有内容,直到您有必要的字节数并将整个程序粘贴到任一侧并获得输出

于 2014-07-15T11:07:42.180 回答