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

Function client_thread_entry

components/net/utest/tc_sal_socket.c:279–345  ·  view source on GitHub ↗

Client thread function */

Source from the content-addressed store, hash-verified

277
278/* Client thread function */
279static void client_thread_entry(void *parameter)
280{
281 int port = (int)parameter;
282 int client_sock = -1;
283 struct sockaddr_in connect_addr;
284 int ret;
285
286 LOG_I("Starting client thread for port %d", port);
287
288 /* Wait for server to be ready */
289 ret = rt_event_recv(&test_event, 0x02, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
290 THREAD_WAIT_TIMEOUT, RT_NULL);
291 if (ret != RT_EOK)
292 {
293 LOG_E("Failed to receive server ready signal: %d", ret);
294 rt_event_send(&test_event, 0x10);
295 return;
296 }
297 LOG_D("Received server ready signal");
298
299 if (!server_ready)
300 {
301 LOG_W("Server not ready, skipping connection");
302 rt_event_send(&test_event, 0x10);
303 return;
304 }
305
306 /* Create client socket */
307 client_sock = create_test_socket(AF_INET, SOCK_STREAM, 0);
308 if (client_sock < 0)
309 {
310 LOG_E("Failed to create client socket");
311 rt_event_send(&test_event, 0x10);
312 return;
313 }
314
315 /* Setup connect address */
316 memset(&connect_addr, 0, sizeof(connect_addr));
317 connect_addr.sin_family = AF_INET;
318 connect_addr.sin_addr.s_addr = inet_addr(local_ip);
319 connect_addr.sin_port = htons(port);
320 LOG_D("Configured client connect address: %s:%d", local_ip, port);
321
322 /* Connect to server */
323 LOG_I("Attempting to connect to server %s:%d", local_ip, port);
324 ret = sal_connect(client_sock, (struct sockaddr *)&connect_addr, sizeof(connect_addr));
325 LOG_I("Connect result: %d", ret);
326
327 if (ret == 0)
328 {
329 LOG_I("Connection to server successful");
330 rt_thread_mdelay(CLIENT_DELAY_MS);
331 }
332 else
333 {
334 LOG_E("Connection to server failed: return=%d, errno=%d", ret, errno);
335 }
336

Callers

nothing calls this directly

Calls 6

rt_event_recvFunction · 0.85
rt_event_sendFunction · 0.85
create_test_socketFunction · 0.85
sal_connectFunction · 0.85
rt_thread_mdelayFunction · 0.85
close_test_socketFunction · 0.85

Tested by

no test coverage detected