胶州城乡建设局网站,怎样做好网站用户体验,使用网站的mysql,开发网络新技术的平台我正在编写一个客户端#xff0c;以使用LINUX上的C脚本读取TCP下通过套接字从服务器发送回的数据。该服务器永远运行#xff0c;我验证是否可以得到答复netcat localhost [PORT_NUMBER]。使用以下命令检查时#xff0c;服务器处于LISTEN状态netstat -naprecv()函数返回预期的…我正在编写一个客户端以使用LINUX上的C脚本读取TCP下通过套接字从服务器发送回的数据。该服务器永远运行我验证是否可以得到答复netcat localhost [PORT_NUMBER]。使用以下命令检查时服务器处于LISTEN状态netstat -naprecv()函数返回预期的字节数但是buffer变空并且strlen(buffer)为0。我还尝试更改为read()这没想到会有不同的结果并且显示了相同的问题。这是代码。#include #include //strlen#include #include //inet_addr#include #include int main(int argc, char *argv[]){int socket_desc, msg_rep_size 1200, msg_size 100;struct sockaddr_in server;char message[msg_size], server_reply[msg_rep_size];//Create socketsocket_desc socket(AF_INET, SOCK_STREAM, 0);if (socket_desc -1){printf(Could not create socket);}server.sin_addr.s_addr inet_addr(0.0.0.0);server.sin_family AF_INET;server.sin_port htons(31114); // PORT_NUMBER//Connect to remote serverif (connect(socket_desc, (struct sockaddr *)server, sizeof(server)) 0){printf(connect error);return 1;}printf(Connected);while (1){// send some databzero(message, msg_size);strncpy(message, REQUEST\n, msg_size);if (send(socket_desc, message, msg_size, 0) 0){printf(Send failed);return 1;}printf(Data Send\n);// Receive a reply from the serverbzero(server_reply, msg_rep_size);int read_result recv(socket_desc, server_reply, msg_rep_size, 0);if (read_result 0){printf(Receive failed\n);return 1;}else{printf(Reply received\n);printf(read_result: %d\n, read_result);printf(strlen(server_reply): %d\n, (int)strlen(server_reply));printf(Reply: %s\n, server_reply);}usleep(8);}return 0;}如果我从int read_result recv(socket_desc, server_reply, msg_rep_size, 0);至int read_result read(socket_desc, server_reply, msg_rep_size);感谢您的帮助。我是套接字编程的新手无法跟踪发生了什么。PS。答复的预期字节大小为1108这是正确的。我打算将最大大小设为1200以确认接收到正确的字节数。PS2。也请随时对低级c的编码风格进行评论。