int main(int argc, char** argv) { g_signal.RegisterSignals(); int port = 7777; int g_servfd = listen_net(port); if (g_servfd < 0) { printf("listen_net failed %s\n", strerror(errno)); return -1; } printf("listen_net start\n"); int clifd1 = my_accept(g_servfd); if (clifd1 < 0) { printf("my_accept failed %s\n", strerror(errno)); return -1; } set_fd_nonblock(clifd1); printf("my_accept clifd1 %d\n", clifd1); int clifd2 = my_accept(g_servfd); if (clifd2 < 0) { printf("my_accept failed %s\n", strerror(errno)); return -1; } set_fd_nonblock(clifd2); printf("my_accept clifd2 %d\n", clifd2); int fds[2]; fds[0] = clifd1; fds[1] = clifd2; int pid1 = fork(); if (pid1 == 0) //子进程 { clildfolw(fds, 2); return 0; } int pid2 = fork(); if (pid2 == 0) //子进程 { clildfolw(fds, 2); return 0; } sleep(1000); return 0; }