| | |
| | | #include "dgram_mod_socket.h" |
| | | #include "usg_common.h" |
| | | |
| | | void server() { |
| | | NetModServerSocket *serverSocket = new NetModServerSocket(5000); |
| | | void server(int port) { |
| | | NetModServerSocket *serverSocket = new NetModServerSocket(port); |
| | | serverSocket->start(); |
| | | } |
| | | |
| | | void client(){ |
| | | void client(int port ){ |
| | | NetModSocket client; |
| | | char send_buf[MAXLINE]; |
| | | net_mod_recv_msg_t *recv_arr; |
| | | int recv_arr_size, i; |
| | | net_node_t node_arr[1] = { |
| | | {"localhost", 5000, 8} |
| | | net_node_t node_arr[] = { |
| | | {"localhost", port, 11}, |
| | | {"localhost", port, 12}, |
| | | {"localhost", port, 13}, |
| | | {"localhost", port, 14} |
| | | }; |
| | | |
| | | while (fgets(send_buf, MAXLINE, stdin) != NULL) { |
| | | client.sendandrecv( node_arr, 1, send_buf, strlen(send_buf), &recv_arr, &recv_arr_size); |
| | | client.sendandrecv( node_arr, 4, send_buf, strlen(send_buf), &recv_arr, &recv_arr_size); |
| | | for(i=0; i<recv_arr_size; i++) { |
| | | printf("host:%s, port: %d, key:%d, content: %s\n", |
| | | recv_arr[i].host, |
| | |
| | | recv_arr[i].content |
| | | ); |
| | | } |
| | | |
| | | NetModSocket::free_recv_msg_arr(recv_arr, recv_arr_size); |
| | | } |
| | | } |
| | | |
| | | int main(int argc, char *argv[]) { |
| | | shm_init(512); |
| | | |
| | | if (argc < 2) { |
| | | fprintf(stderr, "Usage: %s %s|%s\n", argv[0], "server", "client"); |
| | | return 1; |
| | | int port; |
| | | if (argc < 3) { |
| | | fprintf(stderr, "Usage: %s %s|%s <PORT> \n", argv[0], "server", "client"); |
| | | return 1; |
| | | } |
| | | |
| | | port = atoi(argv[2]); |
| | | |
| | | |
| | | if (strcmp("server", argv[1]) == 0 ) { |
| | | server(); |
| | | server(port); |
| | | } |
| | | |
| | | if (strcmp("client", argv[1]) == 0) |
| | | client(); |
| | | client(port); |
| | | } |
| | | |
| | | |