connect ошибка 111 при чтении с попытке подключится к серверу
я вызываю connect, чтобы отправить запрос на подключение к серверу а connect возвращает код ошибки и переменная errno содержит значение 111. Эта ошибка EIDRM. я нашёл что она появляется когда идентификатор был удален. но я не понимаю что за идентификатор и как это исправить, помогите пожалуйтсa. всем спасибо
кусок кода:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <cstdio>
#include <fcntl.h>
#include <unistd.h>
const char *ServerIp = "0.0.0.0";
int ServPort = 9;
int main()
{
char messangeFrom[256];
const char *messangeFor = "\0";
int sd, MaxD, SelRes, ReadBytes;
struct sockaddr_in ServAddr;
fd_set readfds, writefds, exceptfds;
FD_ZERO(&readfds);
FD_ZERO(&writefds);
FD_ZERO(&exceptfds);
ServAddr.sin_family = AF_INET;
ServAddr.sin_port = htons(ServPort);
if (!inet_aton(ServerIp, &(ServAddr.sin_addr)))
{
printf("error with filling sin_addr: %d\n", errno);
return -1;
}else printf("sin_addr was filled\n");
if((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("error with creating a socket: %d\n", errno);
return -1;
}else printf("socket was created\n");
if (-1 == (connect(sd, (struct sockaddr *)&ServAddr, sizeof(ServAddr)))){ //тут происходит ошибка
printf("error with connecting to the server: %d\n", errno);
return -1;
}else printf("connected");
messangeFor = "jopa gdg\n";
Источник: Stack Overflow на русском