Я намагаюся реалізувати програмування сокетів у C. Коли я намагаюся підключитися від клієнта до сервера (Ubuntu), він показує помилку типу "з'єднання не вдалося".
Тому я думаю, що проблема в порту. Я використовую порт 5454 / tcp для програмування сокет.
Як я можу дізнатися, слухає чи 5454 порт? Якщо ні, то які саме порти я можу використовувати для програмування сокетів TCP, використовуючи C в Ubuntu? Це проблема лише з портом або в моєму коді щось не так, або в LINUX Ubuntu потрібні якісь налаштування?
EDIT: Фрагмент коду:
int socket_send;
struct sockaddr_in address;
printf("\n Initialization Socket....");
socket_send = socket(AF_INET,SOCK_STREAM,0);
if(socket_send == -1)
{
perror("\n Socket not created.Error:");
return 1;
}
printf("\n Socket created");
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr(ip);
address.sin_port=htons(5454);
if(connect(socket_send,(struct sockaddr*)&address,sizeof(struct sockaddr))<0)
{
perror("\nConnetion failed.Error:");
return 1;
}
printf("\n Connected");
if(send(socket_send,(char*)buffer,size,flag)<0)
{
perror("\nSending failed.Error:");
return 1;
}
printf("\n Data successfully sent");
close(socket_send);
EDIT : Проблема в порту, тому я щойно встановив Ubuntu, і він працює. Дякую всім вам
lsof -i:5454
(можливо, вам потрібно буде виконати його як той самий користувач, який робить програма, що відкриває порт, або як root).