Ich versuche, die Socket-Programmierung in C zu implementieren. Wenn ich versuche, eine Verbindung von einem Client zu einem Server (Ubuntu) herzustellen, wird ein Fehler wie "Verbindung fehlgeschlagen" angezeigt.
Ich denke, das Problem liegt beim Port. Ich verwende den 5454 / TCP-Port für die Socket-Programmierung.
Wie kann ich feststellen, ob der 5454-Port empfangsbereit ist oder nicht? Wenn nicht, welche Ports kann ich dann für die TCP-Socket-Programmierung mit C in Ubuntu verwenden? Ist das das Problem nur mit dem Port oder ist etwas in meinem Code falsch oder sind Einstellungen in LINUX Ubuntu erforderlich?
EDIT: Codeausschnitt:
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 : Das Problem liegt im Port, also habe ich Ubuntu gerade neu installiert und es funktioniert. Danke euch allen.
lsof -i:5454
(möglicherweise müssen Sie es als denselben Benutzer ausführen, den das Programm, das den Port öffnet, oder als Root ausführt).