simulator: close fd

This commit is contained in:
fengzero
2026-01-22 03:21:54 +00:00
parent 1219ef55b2
commit 7570e01f00
3 changed files with 12 additions and 0 deletions
@@ -305,5 +305,6 @@ int is_ipv6(const char *ip);
bool neu_conn_is_connected(neu_conn_t *conn);
uint16_t neu_conn_udp_act_port(neu_conn_t *conn);
bool conn_tcp_server_is_listen(neu_conn_t *conn);
#endif
+6
View File
@@ -90,6 +90,7 @@ static void sig_handler(int sig)
for (uint32_t i = 0; i < sizeof(c_events) / sizeof(struct client_event);
i++) {
if (c_events[i].fd > 0) {
close(c_events[i].fd);
neu_event_del_io(events, c_events[i].client);
}
}
@@ -149,6 +150,11 @@ int main(int argc, char *argv[])
events = neu_event_new("modbus_simulator");
conn = neu_conn_new(&param, NULL, connected, disconnected);
while (conn_tcp_server_is_listen(conn) == false) {
neu_msleep(1000);
neu_conn_destory(conn);
conn = neu_conn_new(&param, NULL, connected, disconnected);
}
signal(SIGINT, sig_handler);
signal(SIGTERM, sig_handler);
+5
View File
@@ -732,6 +732,11 @@ static void conn_init_param(neu_conn_t *conn, neu_conn_param_t *param)
}
}
bool conn_tcp_server_is_listen(neu_conn_t *conn)
{
return conn->tcp_server.is_listen;
}
static void conn_tcp_server_listen(neu_conn_t *conn)
{
if (conn->param.type == NEU_CONN_TCP_SERVER &&