|
|
@ -171,7 +171,7 @@ void vTCPServer_Task(void *pvParameters) |
|
|
listen_fd = socket(AF_INET, SOCK_STREAM, 0); |
|
|
listen_fd = socket(AF_INET, SOCK_STREAM, 0); |
|
|
if (listen_fd < 0) |
|
|
if (listen_fd < 0) |
|
|
{ |
|
|
{ |
|
|
log_e("Socket create failed!\r\n"); |
|
|
log_e("Socket create failed!"); |
|
|
vTaskDelete(NULL); |
|
|
vTaskDelete(NULL); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
@ -184,7 +184,7 @@ void vTCPServer_Task(void *pvParameters) |
|
|
|
|
|
|
|
|
if (bind(listen_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) |
|
|
if (bind(listen_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) |
|
|
{ |
|
|
{ |
|
|
log_e("Bind failed!\r\n"); |
|
|
log_e("Bind failed!"); |
|
|
close(listen_fd); |
|
|
close(listen_fd); |
|
|
vTaskDelete(NULL); |
|
|
vTaskDelete(NULL); |
|
|
return; |
|
|
return; |
|
|
@ -193,7 +193,7 @@ void vTCPServer_Task(void *pvParameters) |
|
|
// 3. 开始监听,最大排队连接数为 5
|
|
|
// 3. 开始监听,最大排队连接数为 5
|
|
|
if (listen(listen_fd, 5) < 0) |
|
|
if (listen(listen_fd, 5) < 0) |
|
|
{ |
|
|
{ |
|
|
log_e("Listen failed!\r\n"); |
|
|
log_e("Listen failed!"); |
|
|
close(listen_fd); |
|
|
close(listen_fd); |
|
|
vTaskDelete(NULL); |
|
|
vTaskDelete(NULL); |
|
|
return; |
|
|
return; |
|
|
@ -215,7 +215,7 @@ void vTCPServer_Task(void *pvParameters) |
|
|
snprintf(ip_str, sizeof(ip_str), "Unknown"); |
|
|
snprintf(ip_str, sizeof(ip_str), "Unknown"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
log_i("TCP Server is running on %s:[%d]...\r\n", ip_str, PORT); |
|
|
log_i("TCP Server is running on %s:[%d]...", ip_str, PORT); |
|
|
|
|
|
|
|
|
while (1) |
|
|
while (1) |
|
|
{ |
|
|
{ |
|
|
@ -223,7 +223,7 @@ void vTCPServer_Task(void *pvParameters) |
|
|
connect_fd = accept(listen_fd, (struct sockaddr *)&client_addr, &addr_len); |
|
|
connect_fd = accept(listen_fd, (struct sockaddr *)&client_addr, &addr_len); |
|
|
if (connect_fd < 0) |
|
|
if (connect_fd < 0) |
|
|
{ |
|
|
{ |
|
|
log_w("Accept failed!\r\n"); |
|
|
log_e("Accept failed!"); |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -237,7 +237,7 @@ void vTCPServer_Task(void *pvParameters) |
|
|
write(connect_fd, telnet_neg, sizeof(telnet_neg)); |
|
|
write(connect_fd, telnet_neg, sizeof(telnet_neg)); |
|
|
#endif |
|
|
#endif |
|
|
// 打印连接的客户端 IP 和端口
|
|
|
// 打印连接的客户端 IP 和端口
|
|
|
log_i("New client connected: %s:%d\r\n", |
|
|
log_i("New client connected: %s:%d", |
|
|
inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); |
|
|
inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); |
|
|
// 5. 循环接收并回显数据
|
|
|
// 5. 循环接收并回显数据
|
|
|
|
|
|
|
|
|
@ -260,13 +260,13 @@ void vTCPServer_Task(void *pvParameters) |
|
|
else if (ret == 0) |
|
|
else if (ret == 0) |
|
|
{ |
|
|
{ |
|
|
// 客户端正常断开连接
|
|
|
// 客户端正常断开连接
|
|
|
log_i("Client disconnected.\r\n"); |
|
|
log_i("Client disconnected."); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
// 接收出错
|
|
|
// 接收出错
|
|
|
log_e("Read data error!\r\n"); |
|
|
log_e("Read data error!"); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|