Client-Serveur UDP port local

 
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Autres
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
sena
dummy mioche
dummy mioche


Inscrit le: 13 Fév 2003
Messages: 2

MessagePosté le: Jeu Fév 13, 2003 10:16 pm    Sujet du message: Client-Serveur UDP port local Répondre en citant

Salut

j'ai fait un Serveur UDP et un client UDP.
Ces programmes fonctionnent quand ils sont chacun sur 1 PC différent.

Pour 1 raison particulière j'ai besoin d'avoir ces progs qui tournent sur le même PC.

En clair mon client envoi sur le port n°11060 à l'adresse 127.0.0.1 (eh ouai fo que je me l'envoi !)
Et mon serveur lit sur le port n°11060.
Et bien ca marche pas ! Mon serveur ne recoit rien.
Quelqu'un peut t'il me dire pourquoi?
Comment remédier à ce pb?

Merci.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Salemioche
salemioche
salemioche


Inscrit le: 05 Avr 2002
Messages: 350
Localisation: FR- BIOT

MessagePosté le: Ven Fév 14, 2003 9:43 am    Sujet du message: Répondre en citant

si ca marche sur deux machines distantes il n'y a pas de raison que ca ne marche pas en local. le probleme doit etre ailleurs (port deja utilisé...)
_________________
Creer son site - Hebergement - Jumeaux
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Yahoo Messenger MSN Messenger
sena
dummy mioche
dummy mioche


Inscrit le: 13 Fév 2003
Messages: 2

MessagePosté le: Ven Fév 14, 2003 10:25 am    Sujet du message: Répondre en citant

bah non je ne change que l'adresse ip du destinataire.

J'ai mis le source de mon test si quelqu'un peut me renseigner...
En fait le client envoi trois char et le serveur les recoit et les affiches.

/************ CLIENT***************/
#include<stdio.h>
#include<winsock2.h>

#pragma comment(lib,"ws2_32.lib")
#define NBMAX_CAR 4

void main()
{
WSADATA wsa;
WSAStartup(MAKEWORD(2,0),&wsa);

SOCKET sock;
SOCKADDR_IN sin;

printf("Cette machine est le client UDP\n\n");
printf("Elle envoie les packets\n\n");

//Variables
char ip[15] = "127.0.0.1"; //L'adresse IP du destinataire
int port = 11060; //Le n° de port
char buffer[NBMAX_CAR]; //Pour stocker les packets à envoyer

//On informe la structure
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=inet_addr(ip);
sin.sin_port=htons(port);

//préparation de l'envoi
sock=socket(AF_INET,SOCK_DGRAM,0); //On initialise le socket avec SOCK_DGRAM pour dire qu'on est en UDP
bind(sock,(SOCKADDR*)&sin,sizeof(sin)); //Lisaison entre la structure et la socket

//On initialise le tablo buffer[]
memset(buffer,0,sizeof(buffer));

//Remplissage du tablo buffer[]
buffer[0] = 0x41; // 'A'
buffer[1] = 0x42; // 'B'
buffer[2] = 0x43; // 'C'
buffer[3] = NULL;

sendto(sock,buffer,sizeof(buffer),0,(SOCKADDR*)&sin,sizeof(sin));

}



/*************** SERVEUR****************/
#include<stdio.h>
#include<winsock2.h>

#pragma comment(lib,"ws2_32.lib")
#define NBMAX_CAR 4

void main()
{
WSADATA wsa;
WSAStartup(MAKEWORD(2,0),&wsa);

SOCKET sock;
SOCKADDR_IN sin;

printf("Cette machine est le Serveur UDP\n\n");
printf("Elle recoit les packets\n\n");

//Variables
int port = 11060; //Ne pas init. si demande au user.
char buffer[NBMAX_CAR];//Pour stocker les packets à envoyer


//On informe la structure
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_port=htons(port);

//On initialise le socket avec SOCK_DGRAM pour dire qu'on est en UDP
sock=socket(AF_INET,SOCK_DGRAM,0);
bind(sock,(SOCKADDR*)&sin,sizeof(sin));


int sinsize=sizeof(sin);

while(1)
{
memset(buffer,0,sizeof(buffer));
recvfrom(sock,buffer,sizeof(buffer),0,(SOCKADDR*)&sin,&sinsize);
printf("Recu : %s\n",buffer);

}

}
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Autres Toutes les heures sont au format CET (Europe)
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Affilzen SARL : Mention légale