connect : connection refused in c-Programm auf der client-Seite
Ich bin mit dem folgenden code, um eine Verbindung zu dem server auf einem bestimmten port, die als Kommandozeilen-Argumente ...
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#include <stdlib.h>
#include <strings.h>
int main(int argc,char *argv[])
{
struct sockaddr_in serverAddr;
int clientSocketFd ;
char buffer[1024];
if((clientSocketFd = socket(AF_INET, SOCK_STREAM, 0))==-1)
perror("socket");
//get the server IP address and PORT
bzero(&serverAddr, sizeof serverAddr);
printf("ip address :- %s\n",argv[1]);
inet_pton(AF_INET, argv[1], &(serverAddr.sin_addr));
serverAddr.sin_family=AF_INET;
serverAddr.sin_port = atoi(argv[2]);
printf("PORT :- %d\n",serverAddr.sin_port);
//connect to server
if(connect(clientSocketFd,(struct sockaddr *) &serverAddr, sizeof(serverAddr)) == -1)
perror("connect");
printf("Connecting to the server %s on port %s \n",argv[1],argv[2]);
while (1)
{
//receive incoming data
if(recv(clientSocketFd, buffer,1023, 0)==-1)
{
printf("buffer : %s\n" ,buffer);
printf("Received from Server : %s \n",buffer);
break;
}
}
close(clientSocketFd);
}
aber auf der client-Seite , es zeigt "connect : Connection Refused"...
Wenn ich telnet benutzen , dann zeigt es angeschlossen , aber nicht in der Lage, eine Verbindung über den obigen code client.c
plz help
Auch änderte ich die Anzahl der maximal zulässigen ausstehenden verbindungen auf 100 , dann ist auch das problem nicht gelöst... 🙁 ...Hilfe plz
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie Anschluss an den falschen port. Ändern:
Zu:
Denken, diese Strukturen genutzt, um die Kommunikation mit einem anderen Planeten, wo Sie schreiben, Ihre zahlen unterschiedlich. Sie haben zu konvertieren, und aus der Art, wie Sie schreiben zahlen, um die Art, wie Sie schreiben, zahlen, ansonsten bekommst du Unsinn.
Den
htons
Funktion wandelt ports zahlen aus, wie auf Ihrem computer speichert, um die Art, wie Sie im Netzwerk verwendet werden. Dientohs
- Funktion wandelt die port-Nummern von der Art, wie Sie verwendet werden, auf dem Netzwerk, um die Art, wie Ihr computer speichert diese ab. Socket-Adressen werden in Netzwerk-byte-Reihenfolge.ntohs
konvertieren nativen byte-Reihenfolge? (Denke, dass diese Strukturen genutzt, um die Kommunikation mit einem anderen Planeten, wo Sie schreiben, Ihre zahlen unterschiedlich. Sie haben zu konvertieren, und aus der Art, wie Sie schreiben zahlen, um die Art, wie Sie schreiben, zahlen, ansonsten bekommst du Unsinn.)