Problème Linux et Sockets UDP

Résolu/Fermé
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009 - 12 sept. 2009 à 17:38
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 - 13 sept. 2009 à 15:49
Bonjour,
Je suis actuellement en train d'essayer de faire fonctionner un programme client et un programme serveur exploitant les sockets en C sur deux machines virtuelles sur lesquelles j'ai installé la dernière version d'Ubuntu (la 9.04 ). J'ai mis ces deux dernières en réseau et elles se "pinguent" très bien.
Le programme (utilisant le protocole UDP et exploitant le port 23456 ) à pour but d'envoyer un simple message "coucou" du client vers le serveur. Il fonctionne très bien à mon IUT, mais pas du tout chez moi , le serveur ne reçoit rien du tout.
Pourtant , avec Wireshark, j'ai bien vu que le client envoyé le paquet à la bonne adresse IP (celle du serveur ... ) mais il me sortait comme erreur : ICMP Code 3 Erreur 3 ("Port Unreachable") , j'ai tenté de changer de port mais en vain.
Je me suis dit que le problème pourrait alors venir du pare-feu intégré à Ubuntu (Iptables), j'ai donc installer Firestarter (qui sert à configurer Iptables ) et je l'ai configuré de sorte à ce que le pare-feu ne bloque pas le trafic entre les deux machines virtuelles mais cela ne fonctionne toujours pas.

Bref, au début je pensais que le problème venait du fait que j'utilise des machines virtuelles mais étant donné qu'elles se "pinguent" très bien et que Wireshark voit les trames, je ne sais plus où donner de la tête.
Un petit peu d'aide ne serait pas de refus :).
Cordialement.
Fadam
A voir également:

16 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
12 sept. 2009 à 19:24
Salut,

A tout hasard, est-ce que ce ne serait pas l'hôte (XP) qui ferait barrage ?
Tes machines virtuelles sont sur un réseau à part (du moins je suppose) mais c'est quand même au travers d'XP et de sa carte réseau qu'elles transitent, donc...
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
12 sept. 2009 à 19:25
bonsoirs, tu pourais faire un petit sudo iptables -L pour vérifier les refles d'iptable et nous copié le résultat ici?
0
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009
12 sept. 2009 à 20:04
Bonsoir, Merci pour vos réponses rapides.
@Jipicy J'ai plusieurs cartes réseaux sur mes machines virtuelles.
Sur chacune, j'ai une eth0 reliée à Windows XP avec un système de NAT me permettant de me connecter à Internet grâce à mes machines virtuelles et une eth1 en réseau "interne" qui ne sort pas des machines virtuelles, j'ai , bien sûr, désactiver la carte eth0 et laissé seulement la eth1 pour avoir mes machines reliées seulement entre elles. De plus, en lançant Wireshark sur Windows XP et en utilisant mon programme, aucune trame n'apparaît lorsque je "pingue" mes machines avec la carte eth1.

@gosseyn_omega: Voilà le résultat :
Pour la première machine faisant office de serveur et ayant l'adresse IP 192.168.1.1 :


Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
DROP all -- 224.0.0.0/8 anywhere
DROP all -- anywhere 224.0.0.0/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
LSI all -f anywhere anywhere limit: avg 10/min burst 5
INBOUND all -- anywhere anywhere
INBOUND all -- anywhere 192.168.1.1
INBOUND all -- anywhere 192.168.1.1
INBOUND all -- anywhere 192.168.1.255
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Input'

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
OUTBOUND all -- anywhere anywhere
ACCEPT tcp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED
ACCEPT udp -- anywhere 192.168.1.0/24 state RELATED,ESTABLISHED
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Forward'

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
DROP all -- 224.0.0.0/8 anywhere
DROP all -- anywhere 224.0.0.0/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
OUTBOUND all -- anywhere anywhere
OUTBOUND all -- anywhere anywhere
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Output'

Chain INBOUND (4 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- 192.168.1.2 anywhere tcp dpt:23456
ACCEPT udp -- 192.168.1.2 anywhere udp dpt:23456
LSI all -- anywhere anywhere

Chain LOG_FILTER (5 references)
target prot opt source destination

Chain LSI (2 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
REJECT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN reject-with icmp-port-unreachable
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
REJECT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST reject-with icmp-port-unreachable
LOG icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
REJECT icmp -- anywhere anywhere icmp echo-request reject-with icmp-port-unreachable
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Inbound '
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable

Chain LSO (0 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Outbound '
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable

Chain OUTBOUND (3 references)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere


Pour la seconde machine faisant office de client et ayant l'adresse IP 192.168.1.2 :

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
DROP all -- 224.0.0.0/8 anywhere
DROP all -- anywhere 224.0.0.0/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
LSI all -f anywhere anywhere limit: avg 10/min burst 5
INBOUND all -- anywhere anywhere
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Input'

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Forward'

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
DROP all -- 224.0.0.0/8 anywhere
DROP all -- anywhere 224.0.0.0/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
OUTBOUND all -- anywhere anywhere
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix `Unknown Output'

Chain INBOUND (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
LSI all -- anywhere anywhere

Chain LOG_FILTER (5 references)
target prot opt source destination

Chain LSI (2 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
REJECT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN reject-with icmp-port-unreachable
LOG tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
REJECT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST reject-with icmp-port-unreachable
LOG icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5 LOG level info prefix `Inbound '
REJECT icmp -- anywhere anywhere icmp echo-request reject-with icmp-port-unreachable
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Inbound '
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable

Chain LSO (0 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix `Outbound '
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable

Chain OUTBOUND (1 references)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere

Voilà
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
12 sept. 2009 à 20:25
en tout premier lieux, je te conseil de nettoyer iptables
sudo /sbin/iptables -t filter -P INPUT ACCEPT
sudo /sbin/iptables -t filter -P OUTPUT ACCEPT
sudo /sbin/iptables -F
sudo /sbin/iptables -X


et c'est normal que les requete ping n'apparesse pas dans wireshark (car les requete ne passe pas par la carte réseaux du windows XP

petite question subsidiaire, si j'ai bien comprit les paramètres réseaux :

Tu a ton réseau local avec ton pc et ton router; avec une address type 192.168.1.X (généralement).
Ensuite tu a le reseaux interne (HOST ONLY) sur le quel t'es 2 machines virtuel un une carte chaqu'une ( les eth0); avec une address type 192.168.128.X .
Et en plus de ces reseaux la, tu a rejouté 1 carte réseau a chaque machine virtuel sur le réseaux NAT; avec une address type 192.168.220.X .

pourais tu me confirmé ca, et vérifier les address ip des réseaux :
LAN
HOST ONLY
NAT

voila
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009
12 sept. 2009 à 21:16
Je viens de nettoyer les tables, cela ne fonctionne toujours pas mais lorsque je regarde les resultats de la commande sudo iptables -L , ca me parait bien nettoyé :) , pour les 2 machines, j'obtiens :

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



Pour mon PC qui est sous Windows XP, machines virtuelles exclues, je suis relié à un routeur d'adresse IP 192.168.1.1 et mon IP est 192.168.1.50 /24

Ensuite, voilà la configuration précise des adresses réseaux de chacune des deux machines virtuelles :

Machine virtuelle Serveur :

eth0 Link encap:Ethernet HWaddr 08:00:27:91:20:7e
inet adr:10.0.2.15 Bcast:10.0.2.255 Masque:255.255.255.0
adr inet6: fe80::a00:27ff:fe91:207e/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:4 erreurs:0 :0 overruns:0 frame:0
TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:1344 (1.3 KB) Octets transmis:4015 (4.0 KB)
Interruption:11 Adresse de base:0xd020

eth1 Link encap:Ethernet HWaddr 08:00:27:d8:f6:f2
inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::a00:27ff:fed8:f6f2/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:10 erreurs:0 :0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:600 (600.0 B) Octets transmis:3956 (3.9 KB)

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
Packets reçus:28 erreurs:0 :0 overruns:0 frame:0
TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
Octets reçus:1988 (1.9 KB) Octets transmis:1988 (1.9 KB)


Machine virtuelle Client :
eth0 Link encap:Ethernet HWaddr 08:00:27:f8:29:e9
inet adr:10.0.2.15 Bcast:10.0.2.255 Masque:255.255.255.0
adr inet6: fe80::a00:27ff:fef8:29e9/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:3 erreurs:0 :0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:1770 (1.7 KB) Octets transmis:1732 (1.7 KB)
Interruption:11 Adresse de base:0xd020

eth1 Link encap:Ethernet HWaddr 08:00:27:90:b4:f0
inet adr:192.168.1.2 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::a00:27ff:fe90:b4f0/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:2 erreurs:0 :0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:684 (684.0 B) Octets transmis:3661 (3.6 KB)

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
Packets reçus:23 erreurs:0 :0 overruns:0 frame:0
TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
Octets reçus:1878 (1.8 KB) Octets transmis:1878 (1.8 KB)



Je tiens à preciser que ce sont les cartes eth0 qui utilisent le NAT pour se connecter via Windows XP; donc , à chaque fois que je souhaite utiliser mon programme de sockets, je désactive les eth0 des 2 machines avec la commande ifconfig eth0 down , ainsi, il ne me reste plus que les cartes eth1 d'activées, qui elles , sont utilisées seulement pour le réseau interne, et c'est grâce à ces fameuses eth1 que j'arrive à faire se "pinguer" les machines virtuelles.
J'espère t'avoir éclairer un peu plus. Merci de ta patience en tout cas.
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
12 sept. 2009 à 21:43
mauvaise address IP sur l'interface eth0 de la Machine virtuelle Client. c'est la meme que pour l'eth0 que la Machine virtuelle Server
0
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009
12 sept. 2009 à 22:12
Le problème, c'est que je n'utilise pas cette interface pour mon programme, j'utilise la eth1, de plus, si je désactive eth1 sur les 2 machines virtuelles et que je configure le eth0 du client en 10.0.2.14 /24 , je n'arrive pas a "pinguer" le serveur (10.0.2.15) , et je n'ai plus accès à Internet.
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
12 sept. 2009 à 22:18
essais de metre les insterfaces en dhcp.
0
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009
12 sept. 2009 à 23:47
Cela ne marche toujours pas..
Quoiqu'il arrive , j'ai toujours la même erreur de la part d'ICMP (Type 3 code 3 ) :
Destination Unreachable, Port Unreachable
Alors que les pings marchent parfaitement et que les iptables semblent bonnes...
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
12 sept. 2009 à 23:52
est-tu sur que les programme fonctione correctement?
est-tu sur du port utiliser? essais ca sur la Machine Virtuel Server netstat -n -l
0
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009
13 sept. 2009 à 00:06
Je suis sûr que le programme fonctionne puisque c'est le même que celui que j'utilise à mon école (je me le suis envoyé par mail), mais tu peux vérifier par toi même ,

voilà le code serveur.c :


#include <sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <strings.h>
#include <stdio.h>
#include<netdb.h>
#include <stdlib.h>

#define PORT 23456

char rxbuff[100], svcname[50];
int sockfd;
int taille;



struct sockaddr_in myaddr, client;
struct hostent * interm;

main()
{
bzero(&myaddr, sizeof(myaddr));
myaddr.sin_family=AF_INET;
myaddr.sin_port=htons(PORT);

gethostname(svcname, 50);
interm=gethostbyname(svcname);
bcopy(interm->h_addr, &myaddr.sin_addr, sizeof(interm->h_addr));

if((sockfd=socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
perror ("erreur de creation: ");
exit(1);
}

if(bind(sockfd, (struct sockaddr *)&myaddr, sizeof(struct sockaddr))<0)
{
perror ("erreur de bind: ");
exit(1);
}

taille=sizeof(client);
if(recvfrom(sockfd, rxbuff, 100, 0, (struct sockaddr *)&client, &taille)==1)
{ perror ("erreur de reception: ");exit(1);}

printf("message recu %s\n", rxbuff);

close(sockfd);

printf("message recu %s\n", rxbuff);



}



Et voilà le code client.c :


#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<strings.h>
#include<stdio.h>
#include<netdb.h>
#include<stdlib.h>
#define PORT 23456

char txbuff[100]="bonjour ceci est un message de test";
int sockfd ;
int taille ;
struct sockaddr_in svcaddr;
struct hostent *interm;
main(int argc, char **argv)
{
bzero(&svcaddr, sizeof(svcaddr));

svcaddr.sin_family=AF_INET;
svcaddr.sin_port=htons(PORT);
interm=gethostbyname(argv[1]);
bcopy(interm->h_addr, &svcaddr.sin_addr, sizeof(interm->h_addr));

if((sockfd=socket( AF_INET, SOCK_DGRAM, 0))<0)
{perror("erreur de création: ");exit(1);}

taille=sizeof(svcaddr);
sendto(sockfd,txbuff, 100, 0, (struct sockaddr *)&svcaddr, taille);


close(sockfd);
printf("Programme termine ... \n ");

}


Ensuite, lorsque que j'execute mon serveur , voilà ce que me renvoie la commande netstat -n -l concernant l'application :

Proto   Recv-Q  Send-Q          Adresse locale  Adresse distante   Etat

udp     0              0     127.0.1.1:23456       0.0.0.0*


Le 127.0.1.1 en adresse locale,est-ce normal ? Par ailleurs, les autres protocoles udp ont une adresse locale de 0.0.0.0:n° de port
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
13 sept. 2009 à 00:14
^^

il a l'aire d'écouter le port 23456 sur la boucle locale, donc c'est normal que le client n'arrive a joindre le server. etant donné que le fonctionne ailleur, esque tu lance le programme en root? sinon définir une address d'écoute dans ton soft
0
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009
13 sept. 2009 à 00:22
Oui , je lance le programme en root, en revanche, pour définir une adresse d'ecoute au niveau du serveur, euuuhh ^^" ben vu que c'est le premier programme qu'on a fait à base de sockets et que j'ai pas encore tout compris, je vois pas trop comment faire ça. :$
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
13 sept. 2009 à 00:40
ca devrais pouvoir d'aider un peux : https://www.commentcamarche.net/contents/1053-les-fonctions-de-l-api-socket
a ce niveau la, je ne peux plus rien faire
0
Fadam Messages postés 8 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 13 septembre 2009
13 sept. 2009 à 11:52
J'ai modifié rajouté les lignes en gras dans le fichier "serveur.c"



#include <sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <strings.h>
#include <stdio.h>
#include<netdb.h>
#include <stdlib.h>

#define PORT 23456

char rxbuff[100], svcname[50];
int sockfd;
int taille;



struct sockaddr_in myaddr, client;
struct hostent * interm;

main()
{
bzero(&myaddr, sizeof(myaddr));
myaddr.sin_family=AF_INET;
myaddr.sin_port=htons(PORT);

gethostname(svcname, 50);
interm=gethostbyname(svcname);
bcopy(interm->h_addr, &myaddr.sin_addr, sizeof(interm->h_addr));
myaddr.sin_addr.s_addr=inet("192.168.1.1") ; // Adresse du serveur
client.sin_addr.s_addr=inet("192.168.1.2") ; // Adresse du client


if((sockfd=socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
perror ("erreur de creation: ");
exit(1);
}

if(bind(sockfd, (struct sockaddr *)&myaddr, sizeof(struct sockaddr))<0)
{
perror ("erreur de bind: ");
exit(1);
}

taille=sizeof(client);
if(recvfrom(sockfd, rxbuff, 100, 0, (struct sockaddr *)&client, &taille)==1)
{ perror ("erreur de reception: ");exit(1);}

printf("message recu %s\n", rxbuff);

close(sockfd);

printf("message recu %s\n", rxbuff);



}

J'ai configuré mon eth1 du serveur en 192.168.1.1 /24 et mon client en 192.168.1.2 /24 , et j'ai désactivé toutes les autres interfaces.
Et voilà, ça marche nickel ! Un grand merci à toi gosseyn_omega pour ton aide précieuse
0
gosseyn_omega Messages postés 36 Date d'inscription samedi 3 juin 2006 Statut Membre Dernière intervention 14 septembre 2009 4
13 sept. 2009 à 15:49
derien
0