Если без кода, то потому что invalid argument
int listen_port = 1217; sockaddr_in sin; int socket_fd = socket(PF_INET, SOCK_STREAM, 0); setsockopt(socket_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); sin.sin_addr.s_addr = htonl(INADDR_ANY); sin.sin_family = AF_INET; sin.sin_port = htons(listen_port); int res = bind(socket_fd, (struct sockaddr*)&sin, sizeof(sin)); res = listen(socket_fd, 1); int client_fd = ::accept(socket_fd, (struct sockaddr*)&sin, (socklen_t*)&sin);
Вообще каждый вызов системных вызовов надо на ошибки проверять, socket, setsockopt, bind, listen, accept. Проверь, может ранее что-то ошибку возвращает?
Обсуждают сегодня