Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme avec les sockets [ Archives / Réseau / Internet ] (Scooper)

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é 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 File de messages [ par samplaid ] Bonjour, Voici mon problème, j'ai plusieur client et un serveur. Chaque client se connecte a un canal de communication (avec la meme clé). Je passe u savoie si le Client est déconnecté [ par amoweb ] Salutje suis entrain de faire un serveur HTTP avec GCC ( sous windows).Le problème c'est que si le client se déconnecte pendant que j'envoie un fichie SOCKET Information serveur [ par kiki67100 ] Salut tout le monde,Je voudrais retirer les information d'un serveur UDP "Gta en multi-joueur" , juste renvoyez se que le client "Officiel" a envoyez client serveur avec envoy successif de fichiers de même extention [ par salawi45 ] bonjour!j'ai parcouru plusieurs forums et à chaque fois on me parle de celui là, donc j'espère trouver ma réponse ici :-)je dévellope une application Socket Protocole HTTP [ par victorcoasne ] Bonjour,J'ai fait un proxy qui intègre un serveur WEB et lorsque que je lui demande de s'interroger, je me rends compte qu'il y a une erreur.Cette err client/serveur [ par tanoura ] salutje suis entrain de réaliser un programme de simulation du protocole RIP.il s'agit d'une application client serveur sur la même machine et meme co serveur web HTML : indentification unique d'un client [ par steph12358 ] BonjourDans le cadre u développement d'un petit serveur HTML propriétaire je cherche à identifier de manière unique chaque client connecté pour gérer Aide client FTP [ par katson42 ] Bonjour à tous,dans le cadre d'un projet je dois réaliser un client FTP se connectant sur un serveur.J'ai réussi à créer la connexion avec le serveur


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.