begin process at 2012 02 12 14:40:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

Probleme avec les sockets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme avec les sockets

mardi 22 mars 2005 à 09:03:34 | Probleme avec les sockets

Scooper

Bonjour a tous, j'ai un soucis avec l'utilisation des sockets sous UNIX AIX v3.25.
J'ai 2 programmes : 1 client et 1 serveur.
Ces 2 programmes fonctionnent bien (c'est même ceux utilisés dans de nombreux cours).
Si je lance le serveur puis le client, ca fonctionne mais si je relance le serveur puis le client une deuxième fois, le client quitte direct et si je fais un netstat, la socket utilisée n'est pas fermé, il faut attendre environ 1minute avant de pouvoir relancer ces programmes sans erreur.
Si quelqu'un pouvais m'aider j'en serais heureux.
Merci

Voici la sources du client et du serveur :


/*client*/

#include <stdio.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netdb.h>

#include <sys/stat.h>

#include <netinet/in.h>

#define PORT 6969

void main(int argc, char *argv[])

{

int ns1,nbr_car,s1,from,fromlen;

char buf[256];

struct sockaddr_in serveur;

s1 = socket(AF_INET, SOCK_STREAM,0);

serveur.sin_family = AF_INET;

serveur.sin_addr.s_addr = inet_addr("127.0.0.1");

serveur.sin_port = htons(PORT);

connect(s1,(struct sockaddr *)&serveur, sizeof(serveur));

printf("Tapez la phrase a envoyer au serveur: ");

gets(buf);

nbr_car=strlen(buf);

write(s1,buf,nbr_car);

read(s1,buf,sizeof(buf));

printf("Serveur a dit : %s \n",buf);

printf("Tapez la phrase a envoyer au serveur: ");

gets(buf);

nbr_car=strlen(buf);

write(s1,buf,nbr_car);

read(s1,buf,sizeof(buf));

printf("Serveur a dit : %s \n",buf); 

close(s1);

exit(0);

}

 


/*serveur*/

#include <stdio.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netdb.h>

#include <sys/stat.h>

#include <netinet/in.h>

#define PORT 6969

void main(void)

{

struct sockaddr_in serv, from;

int s1,ns1,nbr_car;

char buf[256];

int fromlen;

s1 = socket(AF_INET, SOCK_STREAM,0);

serv.sin_family = AF_INET;

serv.sin_addr.s_addr = htonl(INADDR_ANY);

serv.sin_port = htons(PORT);

bind(s1,(struct sockaddr *)&serv,sizeof(serv));

listen(s1,1);

fromlen=sizeof from;

ns1 = accept(s1,(struct sockaddr *)&from, &fromlen);

read(ns1,buf,sizeof(buf));

printf("Client a dit : %s \n",buf);

printf("Tapez la phrase a envoyer au client: ");

gets(buf);

write(ns1,buf,sizeof(buf));

read(ns1,buf,sizeof(buf));

printf("Client a dit : %s \n",buf);

printf("Tapez la phrase a envoyer au client: ");

gets(buf);

write(ns1,buf,sizeof(buf));

close(ns1);

close(s1);

exit(0);

}

mardi 22 mars 2005 à 16:40:52 | Re : Probleme avec les sockets

NAVIE

Je dis peut-être une bétise mais il me semble que sous Linux tu dois aussi mettre le WSAStartup.




NAVI
mardi 22 mars 2005 à 19:16:03 | Re : Probleme avec les sockets

Scooper

non en fait c bon, sous AIX (UNIX) c'est un systeme de sécurité :/ mais je me suis débrouillé autrement et ca fonctionne, je laisse le serveur tourner maintenant avec une boucle while(1) au niveau de l'accept et ca fonctionne :)


Cette discussion est classée dans : serveur, client, include, s1, buf


Répondre à ce message

Sujets en rapport avec ce message

Client/Serveur, encore..... [ par glubust ] Je veux faire fonctionner une application client/serveur sous UNIX (client) et WINDOWS (serveur).Le programme client envoi une simple requête au serve boucle infinie et file de message [ par kyfranBibax ] Bonjour,j'ai un petit problème avec des files de messages et une boucle infinie.J'ai crée 2 programmes (un serveur et un cllient) qui communiquent via aide creation serveur t'chat [ par crazygoth ] Bonjour Je dois réaliser un projet qui consiste a faire un serveur de t'chat en c sous Linux. je précise que je débute sous Linux et c également. Ma Commen créer un mmorpg (creer son serveur et client). [ par csphpchtml ] Je voudrait savoir commen creer son MMORPG en faisant son serveur et client comme DBZ Online mais de dragonball Z.Je voudrait svoir ou je pourrait avo Meilleur solution pour serveur MMORPG. [ par LA_Tupac ] Bonjour à tous! voila ma question: Je développe actuellement mon premier jeu en réseau. Le socket d'envoi du client est en tcp et le socket d'envoi du application client/serveur pour msn local [ par amalsafa ] bonjour,j'ai besoin de l'aide à propos d'une application (client/serveur) pour un msn local [code=cpp][/code],y a t'il quelque source qui peuvent m'ai Communication Intra Executable (signal / kill) [ par Nitrakz ] Bonjour, Dans le cadre d'un projet genre "chat", je doit faire communiquer 2 threads entre eux a l'aide de: signal() en réception kill() en envoyeur Récupération et réencodage de packet d'un serveur [ par mic1331 ] Tout d'abord bonjour à la communauté ! Donc j'explique ma venu ici. En gros, je cherche à récupéré les paquet envoyer par mon serveur de jeu qui sont


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales