begin process at 2012 05 27 19:13:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > SERVEUR/CLIENT LINUX

SERVEUR/CLIENT LINUX


 Information sur la source

Note :
Aucune note
Catégorie :Réseaux & Internet Classé sous :socket, client, serveur, linux, chat Niveau :Initié Date de création :09/11/2008 Date de mise à jour :09/11/2008 17:44:05 Vu / téléchargé :7 040 / 564

Auteur : ghost4

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

un petit chat client serveur sous linux utilisant les sockets;
quelque bug encore existant mais permet de comprendre le fonctionnement des sockets.
une version ameliorée sera bientôt proposé.

Source

  • /*****************************************************************************
  • * messenger_server.c serveur messenger pour reseau ehernet
  • * auteur: LEBANSAIS CHRISTOPHE
  • * Date 9/11/08
  • * version 0.1
  • *
  • ******************************************************************************/
  • //penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <errno.h>
  • #include <sys/types.h>
  • #include <sys/socket.h>
  • #include <netinet/in.h>
  • #include <netdb.h>
  • #include <arpa/inet.h>
  • #include <unistd.h>
  • #include <string.h>
  • #include "cli_ser.h"
  • //#define TEST
  • extern int errno;
  • int initialiserServeur();
  • int main(int argc, char *argv[], char *envp[])
  • {
  • int idSocClient;
  • int erreur;
  • int i;
  • char c, Buffer[2000];
  • /* initialisation connexion */
  • /* ===================================*/
  • idSocClient = initialiserServeur();
  • puts("retour initialiser connexion");
  • printf("numero socket %d\n",idSocClient);
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* lecture de la demande (chaine ascii) */
  • /* ====================================*/
  • do
  • {
  • i = read(idSocClient,Buffer,sizeof(Buffer)-1);
  • if(i == ERROR)
  • {
  • puts("Erreur lors de la lecture de la socket\n");
  • close(idSocClient);
  • exit(6);
  • }
  • Buffer[i] = '\0';
  • printf("%s\n",Buffer); //message recus
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* emission reponse */
  • /* =================*/
  • gets(Buffer);
  • //strcpy(Buffer,"message recu par le serveur \n");
  • i = write(idSocClient,Buffer,strlen(Buffer));
  • if(i == ERROR)
  • {
  • puts("Erreur lors de l'ecritur dans la socket(reponse au client)\n");
  • close(idSocClient);
  • exit(6);
  • }
  • }while(strcmp(Buffer,"fin") != 0);
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* fin d'utilisation de la socket */
  • /* ============================== */
  • shutdown(idSocClient,2);
  • close(idSocClient);
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • puts("SORTIE NORMALE apres close \n");
  • exit(0);
  • }
  • /******************************************************************************
  • Fonction : initialiserServeur
  • attente et gestion de la connexion avec le client (cote serveur)
  • entree: numero du port du serveur
  • Valeur retournee : idSocComClient, identificateur de la socket locale connectee
  • ******************************************************************************/
  • int initialiserServeur()
  • {
  • struct sockaddr_in sockaddr_connexion, sockaddr_connecte;
  • int erreur,
  • longueurAddr,
  • idSocComClient,
  • idSocConnect,
  • port;
  • char valOpt;
  • char c;
  • char nom[50];
  • struct servent *portserv;
  • puts("creation socket\n");
  • /* Creation de la socket */
  • /* ===================== */
  • idSocConnect = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  • if(idSocConnect == ERROR)
  • {
  • puts("Erreur de creation de la socket\n");
  • exit (1);
  • }
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • valOpt = 1;
  • if(setsockopt(idSocConnect,SOL_SOCKET,SO_REUSEADDR,&valOpt,sizeof(int)) == ERROR)
  • {
  • puts("Erreur lors de la modification des parametres de la socket\n");
  • close(idSocConnect);
  • exit (2);
  • }
  • puts("setsockopt realise\n");
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • printf("init parametre\n");
  • /* initialisation des parametres de la connexion, preparation de la socket */
  • /* ======================================================================= */
  • sockaddr_connecte.sin_family = AF_INET;
  • portserv = getservbyname(SERVICENAME,PROTOCOLE);
  • printf("recup %s\n",portserv);
  • port = portserv->s_port;
  • sockaddr_connecte.sin_port = port;
  • sockaddr_connecte.sin_addr.s_addr = INADDR_ANY;
  • if(bind(idSocConnect,(struct sockaddr *) &sockaddr_connecte,sizeof(struct sockaddr_in)) == ERROR)
  • {
  • puts("Erreur lors du nomage de la socket de connexion\n");
  • close(idSocConnect);
  • exit (3);
  • }
  • if(listen(idSocConnect,NB_PENDANTE) == ERROR)
  • {
  • puts("ERREUR du placement en mode listen de la socket\n");
  • close(idSocConnect);
  • exit (4);
  • }
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* Attente et gestion de connexion */
  • /* ================================ */
  • longueurAddr = sizeof(struct sockaddr);
  • idSocComClient = accept(idSocConnect,(struct sockaddr *) &sockaddr_connexion,&longueurAddr);
  • if(idSocComClient == ERROR)
  • {
  • puts("Erreur lors de la creation de la socket de communication\n");
  • close(idSocConnect);
  • exit (5);
  • }
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • if(gethostname(nom,50) == ERROR)
  • {
  • printf("Erreur lors de la lecture du nom de la machine\n");
  • }
  • else
  • {
  • printf("Nom : %s\n",nom);
  • }
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* Fermeture de la socket de connexion devenu inutile et retour */
  • /* ============================================================ */
  • close(idSocConnect);
  • return(idSocComClient);
  • }
  • /*****************************************************************************
  • * messenger_client.c client messenger pour reseau ehernet
  • * auteur: LEBANSAIS CHRISTOPHE
  • * Date 9/11/08
  • * version 0.1
  • *
  • ******************************************************************************/
  • //penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp
  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <errno.h>
  • #include <sys/types.h>
  • #include <sys/socket.h>
  • #include <netinet/in.h>
  • #include <netdb.h>
  • #include <arpa/inet.h>
  • #include <unistd.h>
  • #include <string.h>
  • #include "cli_ser.h"
  • //#define TEST
  • extern int errno;
  • int initialiserClient();
  • int main(int argc, char *argv[], char *envp[])
  • {
  • int idSocket,
  • nbOctetsLus,
  • erreur,
  • i;
  • char Buffer[2000];
  • char reponse[2000];
  • char c;
  • #ifdef TEST
  • puts("debut tpcli entrer:");
  • scanf("%c",&c);
  • if (c=='f') exit(0);
  • #endif
  • /* initialisation de la connexion */
  • /* =============================== */
  • idSocket = initialiserClient();
  • puts("retour initialiser connexion\n");
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* emission d'une demande au serveur (chaine ascii) */
  • /* ================================================ */
  • do
  • {
  • gets(Buffer);
  • //strcpy(Buffer,"Souhaitez vous communiquer avec moi ?\n");
  • i = write(idSocket,Buffer,strlen(Buffer));
  • if(i == ERROR)
  • {
  • puts("Erreur lors de la lecture de la socket\n");
  • close(idSocket);
  • exit(6);
  • }
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* lecture de la reponse */
  • /* ===================== */
  • i = read(idSocket,reponse,sizeof(reponse));
  • if(i == ERROR)
  • {
  • puts("Erreur lors de la lecture de la socket\n");
  • close(idSocket);
  • exit(6);
  • }
  • reponse[i] = '\0';
  • printf("%s\n",reponse); //message recus
  • }while(strcmp(Buffer,"fin") != 0);
  • /* fin d'utilisation infos reseau de resolution des noms */
  • endhostent();
  • puts("tpcli: SORTIE NORMALE \n");
  • exit(0);
  • }
  • /******************************************************************************
  • Fonction : initialiserClient
  • prepare et realise une connexion avec le serveur
  • entree: numero de port
  • ******************************************************************************/
  • int initialiserClient()
  • {
  • int idSocket,
  • erreur,
  • port;
  • struct sockaddr_in socCom, socserv;
  • char c;
  • struct hostent *adrserv;
  • long addrserv;
  • struct servent *portserv;
  • /* creation de la socket */
  • /* ===================== */
  • idSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  • if(idSocket == ERROR)
  • {
  • puts("Erreur lors de la creation de la socket\n");
  • exit (1);
  • }
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • /* preparation de la connexion et connexion */
  • /* ======================================== */
  • //socCom.sin_family = AF_INET;
  • //socCom.sin_port = 0; En prevision d'un bind
  • //socCom.sin_addr.s_addr = 0;
  • adrserv = gethostbyname(SERVEURNAME);
  • addrserv = adrserv->h_addr;
  • addrserv = *((long*)(adrserv->h_addr));
  • portserv = getservbyname(SERVICENAME,PROTOCOLE);
  • port = portserv->s_port; //11/12/06
  • socserv.sin_family = AF_INET;
  • socserv.sin_port = port;
  • socserv.sin_addr.s_addr = addrserv;
  • //pas de bind le connect le fait automatiquement
  • if(connect(idSocket,(struct sockaddr *) &socserv, sizeof(struct sockaddr)) == ERROR)
  • {
  • puts("ERREUR : Impossible de faire la connexion\n");
  • close(idSocket);
  • exit(2);
  • }
  • //puts("Connexion refusee par le serveur \n");
  • //exit(0);
  • puts("connexion realisee\n");
  • #ifdef TEST
  • puts("entrer:");
  • scanf("%c",&c);
  • #endif
  • return idSocket;
  • }
  • /*parametre du client et du serveur lebansaismsn*/
  • /* cli_ser.h */
  • #ifndef CLI_SER_H
  • #define CLI_SER_H
  • #define FAUX 0
  • #define VRAI 1
  • //#define UPORT 2700
  • #define NB_PENDANTE 3
  • #define ADDR_QUELCONQUE 0
  • #define ADDR_AUTO 0
  • #define ERROR -1
  • #define PROTOCOLE "tcp"
  • #define SERVICENAME "messenger"
  • #define SERVEURNAME "localhost"
  • #endif
/*****************************************************************************
* messenger_server.c serveur messenger pour reseau ehernet 
* auteur: LEBANSAIS CHRISTOPHE
* Date 9/11/08
* version 0.1
*
******************************************************************************/
//penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#include <sys/types.h>

#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>


#include "cli_ser.h"

//#define TEST

extern int errno;

int initialiserServeur();


int main(int argc, char *argv[], char *envp[])
{
	int	idSocClient;
	int	erreur;
	int i;
	char c, Buffer[2000];


/* initialisation connexion */
/* ===================================*/
idSocClient = initialiserServeur();

puts("retour initialiser connexion");
printf("numero socket %d\n",idSocClient);

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

/* lecture de la demande (chaine ascii) */
/* ====================================*/
do 
{
i = read(idSocClient,Buffer,sizeof(Buffer)-1);
if(i == ERROR)
{
	puts("Erreur lors de la lecture de la socket\n");
	close(idSocClient);
	exit(6);
}
Buffer[i] = '\0';
printf("%s\n",Buffer); //message recus


#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  


/* emission reponse */
/* =================*/
gets(Buffer);
//strcpy(Buffer,"message recu par le serveur \n");
i = write(idSocClient,Buffer,strlen(Buffer));
if(i == ERROR)
{
	puts("Erreur lors de l'ecritur dans la socket(reponse au client)\n");
	close(idSocClient);
	exit(6);
}
}while(strcmp(Buffer,"fin") != 0);
#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

/* fin d'utilisation de la socket */
/* ============================== */
shutdown(idSocClient,2);
close(idSocClient);

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  


puts("SORTIE NORMALE apres close \n");
exit(0);

}


/******************************************************************************
	Fonction : initialiserServeur
	attente et gestion de la connexion avec le client (cote serveur)
	entree: numero du port du serveur
	Valeur retournee : idSocComClient, identificateur de la socket locale connectee

******************************************************************************/

int initialiserServeur()
{
	struct sockaddr_in sockaddr_connexion, sockaddr_connecte;
	int	erreur,
		longueurAddr,
		idSocComClient,
		idSocConnect,
		port;
	char valOpt;
	char c;
	char nom[50];
	struct servent *portserv;


puts("creation socket\n");

/* Creation de la socket */
/* ===================== */

idSocConnect = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(idSocConnect == ERROR)
{
	puts("Erreur de creation de la socket\n");
	exit (1);
}

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

valOpt = 1;
if(setsockopt(idSocConnect,SOL_SOCKET,SO_REUSEADDR,&valOpt,sizeof(int)) == ERROR)
{
	puts("Erreur lors de la modification des parametres de la socket\n");
	close(idSocConnect);
	exit (2);
}

puts("setsockopt realise\n");

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  
printf("init parametre\n");

/* initialisation des parametres de la connexion, preparation de la socket */
/* ======================================================================= */

sockaddr_connecte.sin_family = AF_INET;
portserv = getservbyname(SERVICENAME,PROTOCOLE);
printf("recup %s\n",portserv);
port = portserv->s_port; 
sockaddr_connecte.sin_port = port;
sockaddr_connecte.sin_addr.s_addr = INADDR_ANY;
if(bind(idSocConnect,(struct sockaddr *) &sockaddr_connecte,sizeof(struct sockaddr_in)) == ERROR)
{
	puts("Erreur lors du nomage de la socket de connexion\n");
	close(idSocConnect);
	exit (3);
}
if(listen(idSocConnect,NB_PENDANTE) == ERROR)
{
	puts("ERREUR du placement en mode listen de la socket\n");
	close(idSocConnect);
	exit (4);
}

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  


/* Attente et gestion de connexion */
/* ================================ */
longueurAddr = sizeof(struct sockaddr);
idSocComClient = accept(idSocConnect,(struct sockaddr *) &sockaddr_connexion,&longueurAddr);
if(idSocComClient == ERROR)
{
	puts("Erreur lors de la creation de la socket de communication\n");
	close(idSocConnect);
	exit (5);
}


#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

if(gethostname(nom,50) == ERROR)
{
	printf("Erreur lors de la lecture du nom de la machine\n");
}
else
{
	printf("Nom : %s\n",nom);
}


#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

/* Fermeture de la socket de connexion devenu inutile et retour */
/* ============================================================ */

close(idSocConnect);
return(idSocComClient);
}


/*****************************************************************************
* messenger_client.c client messenger pour reseau ehernet 
* auteur: LEBANSAIS CHRISTOPHE
* Date 9/11/08
* version 0.1
*
******************************************************************************/
//penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp


#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#include <sys/types.h>

#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>


#include "cli_ser.h"

//#define TEST

extern int errno;

int initialiserClient();

int main(int argc, char *argv[], char *envp[])
{
	int     idSocket,
        	nbOctetsLus,
		erreur,
		i;
	char Buffer[2000];
	char reponse[2000];
	char c;

#ifdef TEST
puts("debut tpcli entrer:");
scanf("%c",&c);
if (c=='f') exit(0);
#endif


/* initialisation de la connexion */
/* =============================== */
idSocket = initialiserClient();

        
puts("retour initialiser connexion\n");

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

/* emission d'une demande au serveur (chaine ascii) */
/* ================================================ */
do
{
gets(Buffer);
//strcpy(Buffer,"Souhaitez vous communiquer avec moi ?\n");
i = write(idSocket,Buffer,strlen(Buffer));
if(i == ERROR)
{
	puts("Erreur lors de la lecture de la socket\n");
	close(idSocket);
	exit(6);
}

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

/* lecture de la reponse */
/* ===================== */
i = read(idSocket,reponse,sizeof(reponse));
if(i == ERROR)
{
	puts("Erreur lors de la lecture de la socket\n");
	close(idSocket);
	exit(6);
}
reponse[i] = '\0';
printf("%s\n",reponse); //message recus

}while(strcmp(Buffer,"fin") != 0);

/* fin d'utilisation infos reseau de resolution des noms */
       endhostent();


puts("tpcli: SORTIE NORMALE \n");
	exit(0);

}


/******************************************************************************
	Fonction : initialiserClient

	prepare et realise une connexion avec le serveur
	entree: numero de port

******************************************************************************/

int initialiserClient()
{
	int     idSocket,
        	erreur,
		port;
	struct sockaddr_in socCom, socserv;
	char c;
	struct hostent *adrserv;
	long addrserv;
	struct servent *portserv;

/* creation de la socket */
/* ===================== */
idSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(idSocket == ERROR)
{
	puts("Erreur lors de la creation de la socket\n");
	exit (1);
}


#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

/* preparation de la connexion et connexion */
/* ======================================== */
//socCom.sin_family = AF_INET;
//socCom.sin_port =  0;		En prevision d'un bind
//socCom.sin_addr.s_addr = 0;

adrserv = gethostbyname(SERVEURNAME);
addrserv = adrserv->h_addr; 
addrserv = *((long*)(adrserv->h_addr));
portserv = getservbyname(SERVICENAME,PROTOCOLE);
port = portserv->s_port; //11/12/06 

socserv.sin_family = AF_INET;
socserv.sin_port = port;
socserv.sin_addr.s_addr = addrserv;

//pas de bind le connect le fait automatiquement
if(connect(idSocket,(struct sockaddr *) &socserv, sizeof(struct sockaddr)) == ERROR)
{
		puts("ERREUR : Impossible de faire la connexion\n");
		close(idSocket);
		exit(2);
}
			//puts("Connexion refusee par le serveur \n");
			//exit(0);
			

puts("connexion realisee\n");

#ifdef TEST
puts("entrer:");
scanf("%c",&c);
#endif  

	return idSocket;

}


/*parametre du client et du serveur  lebansaismsn*/
/* cli_ser.h */
#ifndef CLI_SER_H
#define CLI_SER_H

#define FAUX			    	0
#define VRAI			    	1
//#define UPORT			    	2700
#define NB_PENDANTE      		3
#define ADDR_QUELCONQUE		    	0
#define ADDR_AUTO			0
#define ERROR				-1
#define PROTOCOLE			"tcp"
#define SERVICENAME			"messenger"
#define SERVEURNAME 		        "localhost"

#endif




 Conclusion

réaliser en 3 fichiers
il faut penser a ajouté le service dans le fichier /etc/services avec cette syntaxe :

messenger          2200/tcp

n'esiter pas a me laisser vos commentaires
bonne prog

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

09 novembre 2008 17:43:35 :
ajout du fichier zip
09 novembre 2008 17:44:05 :
ajout du fichier zip

 Sources de la même categorie

Source avec Zip Source avec une capture MINI SERVEUR HTTP [WINDOWS] par ganjarasta
Source avec Zip Source avec une capture CLIENT DE TEST MODBUS TCP par brunovan
Source avec Zip Source avec une capture SCANIP [ARP / ICMP] par ganjarasta
Source avec Zip Source avec une capture TRACEROUTE [WINPCAP] par ganjarasta
Source avec Zip SERVEUR MULTITHREAD [LINUX/WIN] par nipepsinicolas

 Sources en rapport avec celle ci

Source avec Zip MINICHAT MULTI-CLIENT par wisar
Source avec Zip Source avec une capture CLIENT/SERVEUR UTILISANT LES IOCP RÉALISÉ AVEC BORLAND BUILD... par goodboy21
Source avec Zip MINI CHAT C/C++ par edf102
Source avec Zip MINI CHAT SOCKET par rtfm321
Source avec Zip MK_SOCKET : UNE BIBLIOTHÈQUE COMPLÈTE ET TRÈS SIMPLE DE GEST... par dnob700

Commentaires et avis

Commentaire de frozon le 10/11/2008 09:48:55

Salut,
Je n'ai pas regardé ton code en détail mais la première chose que je remarque c'est:
//penser a ajouter le service dans le fichier etc/service non du service lebmessenger port 2200/tcp

Le fichier /etc/service est un fichier système contenant des ports standards.
Il est très fortement déconseillé de modifier ce fichier.
Le mieux est de laisser tes définitions dans ton .h
#define SERVER "localhost"
#define PORT 2200

Une autre remarque concernant le #define TEST que tu as commenté.
Tu peu utiliser les options de compilation pour gérer ce soucis et donc par conséquent éviter de commenter/décommenter cette ligne:
#ifndef _DEBUG_
#define TEST
#endif
Par la suite pour utiliser le test, tu as juste besoin de passer -D DEBUG dans tes option de compilation GCC.

Voila, j'espère que mes commentaires te seront utile par la suite.

Commentaire de omnia le 11/11/2008 15:44:11

Bonjour,

une source linux c'est pas souvent par contre "Initié", un peu beaucoup, plustot débutant la ^^

si tu veux travailler sur du chat sous linux je te conseil de dev en gtk, ce n'est pas hyper performant comme les puristes de la dev pourrait te le dire mais tu pourrais créer un programme compatible linux / windows.

a bon entendeur :)

bon codage

Commentaire de abdoussmohammed le 23/02/2011 21:29:05

salut
Merci pour ce code mais j'ai déjà fais ça?mais pour moi je veux faire un programme qui permet une conversation entre deux clients. et merci de m'aider pour réaliser ce programme

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

programmation socket sous linux [ par blazman34 ] Bonjour à tous !!Voici mon probleme :Je suis en train de programmer une application client serveur sous linux, tout a bien marcher juska présent juska Soket sous LINUX [ par diablo31170 ] Bonjour &#224; tous le monde, comme le nom l'indique, cela va parler de soscket sous linux (en C++). Il aut savoir que je travaille en mode connect&#2 Identifier un Client via Socket IP - C++ [ par Jeff_Trek ] Bonjour,J'utilise un Serveur (Socket IP), J'aimerais identifier les clients qui se connecte et déconnecte.Je connais les adresses IP des clients.Si Cl Socket et linux : serveur smtp [ par LuckyNut ] Bonjour,J'ai développé un petit serveur smtp sous linux et j'ai un pb que je n'arrive pas à résoudre.Il marche nickel si je le fais écouter sur le por transfert d'imge d'un serveur vers un client en C++(linux) [ par doberman7578 ] bonjour,n'aarivant pas a effectuer le transfert d'une image d'un serveur a un client en c++ , quelqu'un pouurait il maider a effectuer celamercia++ Chat client serveur C [ par lenneth666 ] Bonjour comme projet je dois faire un chat en C. Mais je ne sais pas du tout par ou commecer. et la m&#233;thode a suivre. problème serveur TCP en C [ par lenneth666 ] Bonjour j'ai essay&#233; de faire un client server TCP en C mais mon serveur bloque a l'instruction suivante : client_socket = accept( ma_socket,(s socket client (php) vers serveur (c++) [ par suleyman ] bonjour, je suis debutant, je nai jamais programmer une socket et jaimerai avoir le code source ainsi que les commentaires dune socket client et serve client windows , serveur linux mysql [ par Guilhou ] Bonjour &#224; tous, j'aurais voulu savoir s'il &#233;tait possible de faire communiquer une serveur linux avec des clients qui tournent sous windows. Client/serveur Socket transfert de plusieurs fichiers [ par atifelkhachine ] Bonjour.quelqu'un peut me donner un pti guide pour realiser une application C/S de transfert de plusieurs fichiers binaires en utilsant les sockets .


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,546 sec (3)

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