MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / server_thread_entry

Function server_thread_entry

components/net/utest/tc_sal_socket.c:168–276  ·  view source on GitHub ↗

Server thread function */

Source from the content-addressed store, hash-verified

166
167/* Server thread function */
168static void server_thread_entry(void *parameter)
169{
170 int port = (int)parameter;
171 int server_sock = -1;
172 struct sockaddr_in bind_addr;
173 int ret;
174
175 LOG_I("Starting server thread on port %d", port);
176
177 /* Create server socket */
178 server_sock = create_test_socket(AF_INET, SOCK_STREAM, 0);
179 if (server_sock < 0)
180 {
181 LOG_E("Failed to create server socket");
182 rt_event_send(&test_event, 0x01);
183 return;
184 }
185
186 /* Setup bind address */
187 memset(&bind_addr, 0, sizeof(bind_addr));
188 bind_addr.sin_family = AF_INET;
189 bind_addr.sin_addr.s_addr = htonl(INADDR_ANY);
190 bind_addr.sin_port = htons(port);
191 LOG_D("Configured server bind address: port %d", port);
192
193 /* Bind server socket */
194 ret = sal_bind(server_sock, (struct sockaddr *)&bind_addr, sizeof(bind_addr));
195 if (ret != 0)
196 {
197 LOG_E("Failed to bind server socket %d: return=%d, errno=%d", server_sock, ret, errno);
198 close_test_socket(server_sock);
199 rt_event_send(&test_event, 0x01);
200 return;
201 }
202 LOG_I("Server socket %d bound to port %d", server_sock, port);
203
204 /* Listen on server socket */
205 ret = sal_listen(server_sock, 5);
206 if (ret != 0)
207 {
208 LOG_E("Failed to listen on server socket %d: return=%d, errno=%d", server_sock, ret, errno);
209 close_test_socket(server_sock);
210 rt_event_send(&test_event, 0x01);
211 return;
212 }
213 LOG_I("Server socket %d listening with backlog 5", server_sock);
214
215 server_ready = 1;
216 rt_event_send(&test_event, 0x02);
217 LOG_I("Server ready and signaled on port %d", port);
218
219 /* Wait for client connection */
220 ret = rt_event_recv(&test_event, 0x04, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
221 RT_WAITING_FOREVER, RT_NULL);
222 if (ret != RT_EOK)
223 {
224 LOG_E("Failed to receive client connect signal: %d", ret);
225 rt_event_send(&test_event, 0x01);

Callers

nothing calls this directly

Calls 10

create_test_socketFunction · 0.85
rt_event_sendFunction · 0.85
sal_bindFunction · 0.85
close_test_socketFunction · 0.85
sal_listenFunction · 0.85
rt_event_recvFunction · 0.85
sal_ioctlsocketFunction · 0.85
sal_acceptFunction · 0.85
set_socket_timeoutFunction · 0.85
rt_thread_mdelayFunction · 0.85

Tested by

no test coverage detected