Я пытаюсь настроить сервер с использованием сокетов, и порт, который я хочу прослушать, кажется, не работает должным образом. Когда я запускаю команду netstat -nlp, порт не будет отображаться.
int openListenFd(int port){
int socketDesc, newSocket;
int opt = 1;
struct sockaddr_in server, client;
string message;
cout << "The port is " << port << endl;
int myPort = 3207;
socketDesc = socket(AF_INET, SOCK_STREAM, 0);
if(socketDesc == -1){
cout << "ERROR CREATING SOCKET DESCRIPTOR" << endl;
exit(EXIT_FAILURE);
}
if(setsockopt(socketDesc, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))){
cout << "Setsocket error" << endl;
exit(EXIT_FAILURE);
}
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr("127.0.0.1");
server.sin_port = htons(myPort);
if(bind(socketDesc, (struct sockaddr *)&server, sizeof(server)) < 0){
cout << "BIND FAILED" << endl;
exit(EXIT_FAILURE);
}
cout << "Bind finished" << endl; //Page 982
if(listen(socketDesc,10) < 0){
close(socketDesc);
}
return socketDesc;
}
Это должно вернуть файловый дескриптор для соединения, и это не приведет к ошибке в любой момент. Позже он получает вызов accept (), где просто ожидает, вероятно, потому что ни один клиент не может подключиться к нему, так как порт не работает.