Bonjour à tous,

Je suis en pleine conception d'une socket en mode connecté avec gcc.
Mon problème : J'obtiens toujours l'erreur ERRNO 107 (Transport endpoint is not connected)

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<string.h>
#include<strings.h>
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<unistd.h>
 
 
#define MAXCONN 2
#define TAILLE 20
 
int main(int argc, char * argv[]) {
	if ( argc < 2 ) { perror("Parametre manquant [port]"); exit(1); }
	if ( argc > 2 ) { perror("Parametres supperflus"); }
 
	struct sockaddr_in serveur, client;
	int desc, caractere_recu, lg_addr = sizeof(client);
	char message[TAILLE];
 
	if ( (desc = socket( AF_INET, SOCK_STREAM, 0)) < 0 ) {
		perror("Erreur : Creation du socket");
		exit(1);
	}
	serveur.sin_family = AF_INET;
	serveur.sin_port = htons(atoi(argv[1]));
	serveur.sin_addr.s_addr = htonl(INADDR_ANY);
	bzero( &serveur.sin_zero, 8 );
 
	if ( bind(desc, (struct sockaddr *)&serveur, sizeof(serveur)) < 0 ) {
		perror("Erreur : Attachement du socket");
		exit(1);
	}
 
	if ( listen(desc,MAXCONN) < 0 ) {
		perror("Erreur : Ecoute les demandes de connexion");
		exit(1);
	}
 
	if ( accept(desc,(struct sockaddr *)&client, &lg_addr) < 0 ) {
		perror("Erreur : Accept la connexion");
		exit(1);
	}
 
	if ( (caractere_recu = read(desc, message, sizeof(message))) < 0 ) {
		printf("errno = %d",errno);
		perror("Erreur : Reception des donnees");
		exit(1);
	}
 
	printf("[SERVER] Message recu : %s \n",message);
 
	close(desc);	
}
Si quelqu'un avait une idée pour résoudre mon problème, il serait le bienvenue !! Merci !