connect : connexion refusée dans un programme c, à côté client
Je suis en utilisant le code suivant pour vous connecter au serveur à un certain port qui sont fournis comme des arguments de ligne de commande ...
#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);
}
mais du côté client , il montre "connect : Connection refused"...
Si j'utilise telnet , puis il montre connectée , mais pas en mesure de se connecter via le code ci-dessus de client.c
plz help
Aussi j'ai changé le nombre maximum autorisé dans l'attente de connexions à 100 , puis également le problème n'est pas résolu... 🙁 ...help plz
Vous devez vous connecter pour publier un commentaire.
Vous vous connectez à un mauvais port. Modification:
À:
Pense de ces structures que d'être utilisé pour communiquer avec une autre planète où ils écrivent leurs numéros différemment. Vous devez les convertir vers et à partir de la façon dont vous écrivez les nombres à leur écriture des nombres, sinon vous obtenez non-sens.
La
htons
fonction convertit les numéros de ports à partir de la manière dont votre ordinateur stocke dans la façon dont ils sont utilisés sur le réseau. Lentohs
fonction convertit les numéros de port à partir de la façon dont ils sont utilisés sur le réseau de la manière dont votre ordinateur stocke. Adresses de Socket sont dans l'ordre des octets de réseau.ntohs
pour convertir natif d'ordre des octets? (Pensez à ces structures que d'être utilisé pour communiquer avec une autre planète où ils écrivent leurs numéros différemment. Vous devez les convertir vers et à partir de la façon dont vous écrivez les nombres à leur écriture des nombres, sinon vous obtiendrez des bêtises.)