| 217 | } |
| 218 | |
| 219 | int |
| 220 | main(int argc, char* argv[]) |
| 221 | { |
| 222 | try |
| 223 | { |
| 224 | // Check command line arguments. |
| 225 | if(argc != 3) |
| 226 | { |
| 227 | std::cerr << "Usage: " << argv[0] << " <address> <port>\n"; |
| 228 | std::cerr << " For IPv4, try:\n"; |
| 229 | std::cerr << " receiver 0.0.0.0 80\n"; |
| 230 | std::cerr << " For IPv6, try:\n"; |
| 231 | std::cerr << " receiver 0::0 80\n"; |
| 232 | return EXIT_FAILURE; |
| 233 | } |
| 234 | |
| 235 | auto const address = net::ip::make_address(argv[1]); |
| 236 | unsigned short port = static_cast<unsigned short>(std::atoi(argv[2])); |
| 237 | |
| 238 | net::io_context ioc{1}; |
| 239 | |
| 240 | tcp::acceptor acceptor{ioc, {address, port}}; |
| 241 | tcp::socket socket{ioc}; |
| 242 | http_server(acceptor, socket); |
| 243 | |
| 244 | ioc.run(); |
| 245 | } |
| 246 | catch(std::exception const& e) |
| 247 | { |
| 248 | std::cerr << "Error: " << e.what() << std::endl; |
| 249 | return EXIT_FAILURE; |
| 250 | } |
| 251 | } |
nothing calls this directly
no test coverage detected