From 6600a375ac386a0d384c4e9f1af4f235b8d67262 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 04 二月 2021 12:00:46 +0800
Subject: [PATCH] update
---
test_net_socket/test_net_mod_socket.cpp | 33 +++++++++++++++++++--------------
1 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/test_net_socket/test_net_mod_socket.cpp b/test_net_socket/test_net_mod_socket.cpp
index 94be25b..8711bca 100644
--- a/test_net_socket/test_net_mod_socket.cpp
+++ b/test_net_socket/test_net_mod_socket.cpp
@@ -133,21 +133,30 @@
-void start_reply(int key) {
+void start_reply(int mkey) {
printf("start reply\n");
void *ser = net_mod_socket_open();
- net_mod_socket_bind(ser, key);
- int size;
- void *recvbuf;
+ net_mod_socket_bind(ser, mkey);
char sendbuf[512];
int rv;
- int remote_port;
- while ( (rv = net_mod_socket_recvfrom(ser, &recvbuf, &size, &remote_port) ) == 0) {
- // printf( "server: RECEIVED REQUEST FROM PORT %d NAME %s\n", remote_port, recvbuf);
+ while(true) {
+ rv = net_mod_socket_recvandsend_timeout(ser, [&]( void *recvbuf, int recvsize, int key, void ** sendbuf_ptr, int *sendsize_ptr, void * user_data){
+ printf( "server: RECEIVED REQUEST FROM %d : %s\n", key, (char *)recvbuf);
sprintf(sendbuf, "%d RECEIVED %s", net_mod_socket_get_key(ser), (char *)recvbuf);
- net_mod_socket_sendto(ser, sendbuf, strlen(sendbuf) + 1, remote_port);
+ // buf 鍜� size鏄繑鍥炲��
+ *sendbuf_ptr = sendbuf;
+ *sendsize_ptr = strlen(sendbuf) + 1;
+ //recvbuf鏄垎閰嶅埌鍫嗛噷鐨勶紝浣跨敤瀹屽悗涓嶈蹇樿閲婃斁鎺�
free(recvbuf);
+ return;
+ }, 0, 2000000, NULL );
}
+ // while ( (rv = net_mod_socket_recvfrom(ser, &recvbuf, &size, &key) ) == 0) {
+ // // printf( "server: RECEIVED REQUEST FROM %d NAME %s\n", key, recvbuf);
+ // sprintf(sendbuf, "%d RECEIVED %s", net_mod_socket_get_key(ser), (char *)recvbuf);
+ // net_mod_socket_sendto(ser, sendbuf, strlen(sendbuf) + 1, key);
+ // free(recvbuf);
+ // }
}
// 浜や簰寮忓鎴风
@@ -194,7 +203,7 @@
if (fgets(content, MAXLINE, stdin) != NULL) {
// 鏀跺埌娑堟伅鐨勮妭鐐瑰嵆浣挎病鏈夊搴旂殑淇℃伅锛� 涔熻鍥炲涓�涓〃绀烘棤鐨勬秷鎭�,鍚﹀垯浼氫竴鐩寸瓑寰�
// n = net_mod_socket_sendandrecv(client, node_arr, node_arr_size, content, strlen(content), &recv_arr, &recv_arr_size);
- n = net_mod_socket_sendandrecv_timeout(client, node_arr, node_arr_size, content, strlen(content), &recv_arr, &recv_arr_size, 1000);
+ n = net_mod_socket_sendandrecv_timeout(client, node_arr, node_arr_size, content, strlen(content), &recv_arr, &recv_arr_size, 1);
printf(" %d nodes reply\n", n);
for(i=0; i<recv_arr_size; i++) {
printf("reply from (host:%s, port: %d, key:%d) >> %s\n",
@@ -372,7 +381,7 @@
while(true) {
sprintf(buf, hello_format, pid, l);
n = net_mod_socket_sendandrecv_timeout(client, node_arr, node_arr_size, buf, strlen(buf)+1,
- &recv_arr, &recv_arr_size, 1);
+ &recv_arr, &recv_arr_size, 1000);
printf(" %d nodes reply\n", n);
for(j = 0; j < recv_arr_size; j++) {
@@ -493,10 +502,6 @@
}
net_mod_socket_close(client);
}
-
-
-
-
int main(int argc, char *argv[]) {
--
Gitblit v1.8.0