| 38 | } |
| 39 | |
| 40 | task<> client(std::string_view hostname, uint16_t port) { |
| 41 | inet_address addr; |
| 42 | if (inet_address::resolve(hostname, port, addr)) { |
| 43 | Socket sock{Socket::create_tcp(addr.family())}; |
| 44 | // 连接一个 server |
| 45 | int res = co_await sock.connect(addr); |
| 46 | if (res < 0) { |
| 47 | printf("res=%d: %s\n", res, strerror(-res)); |
| 48 | } |
| 49 | // 生成 session 协程 |
| 50 | co_spawn(recv_session(Socket{sock.fd()})); |
| 51 | co_spawn(send_session(Socket{sock.fd()})); |
| 52 | } else { |
| 53 | printf("Unable to resolve %s\n", hostname.data()); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | int main(int argc, const char *argv[]) { |
| 58 | if (argc < 3) { |
no test coverage detected