Usiłuję zaimplementować programowanie gniazd w C. Gdy próbuję połączyć się z klientem do serwera (Ubuntu), pojawia się błąd „połączenie nie powiodło się”.
Myślę więc, że problem dotyczy portu. Korzystam z portu 5454 / tcp do programowania gniazd.
Skąd mam wiedzieć, czy port 5454 nasłuchuje, czy nie? Jeśli nie, to jakich portów mogę użyć do programowania gniazd TCP za pomocą C w Ubuntu? Czy to jest problem tylko z portem, czy coś jest nie tak z moim kodem, czy wymagane są jakieś ustawienia w Linuksie Ubuntu?
EDYCJA: Fragment kodu:
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);
EDYCJA : Problem jest w porcie, więc właśnie zainstalowałem Ubuntu i działa. Dziękuję wam wszystkim.
lsof -i:5454
(może być konieczne wykonanie go jako ten sam użytkownik, co program otwierający port lub jako root).