我在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]);
答案 0 :(得分: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是一个流,一个写或多个写不重要,你可以一次性读取它或读取,直到你有必要的字节数并且粘贴整个程序在任何一方和你得到的输出< / p>