| 119 | } |
| 120 | |
| 121 | void run_server(void) { |
| 122 | static const size_t bufsize = 1024; |
| 123 | char buf[bufsize]; |
| 124 | memset(buf, 0, bufsize); |
| 125 | |
| 126 | libsocket::inet_stream_server srv(HOST, PORT, LIBSOCKET_IPv4); |
| 127 | |
| 128 | while (true) { |
| 129 | libsocket::inet_stream* client = srv.accept(1); |
| 130 | libsocket::dgram_over_stream dgram_cl(std::move(*client)); |
| 131 | ssize_t len = 0; |
| 132 | |
| 133 | std::cout << "Server received " << (len = dgram_cl.rcvmsg(buf, bufsize)) |
| 134 | << " bytes.\n"; |
| 135 | std::cout << buf << std::endl; |
| 136 | dgram_cl.sndmsg("Hello back", 10); |
| 137 | |
| 138 | memset(buf, 0, len); |
| 139 | } |
| 140 | |
| 141 | return; |
| 142 | } |