Programmation client serveur sous windows

Roolyan -  
 YannK -
Bonjour je suis en 2ème année de BTS info induss et pour mon projet je doit programmer un client serveur sous windows à l'aide de socket. Pourriez vous me faire parvenir de la doc intéressantes ainsi que des exemples de programme en c et c++.
Merci d'avance
A voir également:

8 réponses

Vengur Masque
 
Je suis aussi en Info Indus. T'es OU ?

Je dois avoir qqchose chez moi.

A+
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Salut !

google est ton ami:
http://www.google.com/search?q=socket+programming+howto

On trouve:
http://www.peterindia.com/SocketProgrammingResources.html
http://pont.net/socket/ (exemples très simples !)

Ensuite à toi de choisir entre TCP et UDP en fonction des besoins.

(tiens c'est marrant les 7 premiers liens ramenés c'est du Python :o)
0
roolyan
 
Bonjour je suis en 2ème année de BTS info induss à Haguenau et pour mon projet je doit programmer un client serveur sous windows à l'aide de socket. Pourriez vous me faire parvenir de la doc intéressantes ainsi que des exemples de programme en c et c++.
Merci d'avance
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Ah tiens ! Hagenau, j'y vais justement ce soir, pour un booling. :-)
0
adama
 
Que peut-on faire d'autres avec les sockets à part envoyer des chaînes de caractères avec les fonctions send() et recv() et comment le faire?
Est-ce qu'on peut envoyer un fichier d'une machine à une autre ou exécuter des commandes (comme "dir") sur une autre machine?
0
Keywald
 
Indirectemnt oui, ce spont justement tes chaines de caractère qui permette de transferé un fichier d'un serveur à un client, pour le dir par contre il faut envoyer une requete ( un message en char reconnaissable par le client et te demander de renvoyer la réponse ),
tout est possible en créant des requete reconnaissable par le client grace au send () et recv()
0

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

Posez votre question
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Comme dit Keywald, un fichier, une commande... tout ça, ça peut se faire sous forme de chaîne de caractères.
0
rachid
 
Bonjour,
je suis en deuxieme annee bts genie informatique pour mon projet de fin d'etudes je souhaite realiser un client/serveur a l'aide des sockets mais le probleme c'est que je trouve des cours avec des codes et sans explications.
Si quelqu'un peut me dire ou trouver un cours complet sur les sockets avec une explication detaille sur tout et en francais priere de me l'envoyer sur ma boite email dark_world1987@hotmail.com et merci d'avance .
0
sana
 
salut tout le monde
je suis en deuxieme année réseau informatique je souhaite realiser pour mon projt de fin d'etude une application client/serveur en c.estce qui'lya quelqu qui peut maider et meri d'avance.
0
itachi
 
tu voudrais faire quoi exactement dans cette application client/serveur, j'ai un projet similaire.
0
execrable88 Messages postés 3 Statut Membre > itachi
 
svp je cherche d'urgence un projet client serveur FTP (c ou bien c++ ou VB)
aidez moi svp
0
chanouza
 
architecture client/serveur iteratif en mode TCP sous UNIX(UBUNTU)

/*cote client*/
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define closesocket(s) close(s)
typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;

#include<stdio.h>
#include<stdlib.h>
#define PORT 5240

int main(void)
{
SOCKET sock;
SOCKADDR_IN sin;
char buffer[30]="";
char buffer1[30]="bonjour tout le monde";
int a;
sock=socket(AF_INET,SOCK_STREAM,0);

sin.sin_addr.s_addr=inet_addr("127.0.0.1");
sin.sin_family=AF_INET;
sin.sin_port=htons(PORT);

if (connect(sock,(SOCKADDR*)&sin , sizeof(sin)) !=SOCKET_ERROR)
{
printf("connexion a %s sur le port %d\n", inet_ntoa(sin.sin_addr),htons(sin.sin_port));

a=send(sock, buffer1, 30,0);
printf(" message envoye");
if (recv(sock,buffer, 30 ,0) !=SOCKET_ERROR)
printf("le message a ete recu :%s\n" , buffer);

}

else
{
printf("impossible de se connecter\n");
}
closesocket(sock);

getchar();
return EXIT_SUCCESS;
}




/*cote serveur*/

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define closesocket(s) close(s)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PORT 5240
typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;

int main(void)
{
SOCKET sock;
SOCKADDR_IN sin;
SOCKET csock;
SOCKADDR_IN csin;
char buffer[30]="Merci!";
char buffer2[30]="";
socklen_t recsize=sizeof(csin);
int sock_err;
sock=socket(AF_INET,SOCK_STREAM,0);
if (sock != INVALID_SOCKET)
{
printf("la socket %d est maintenant ouverte en mode connecte\n",sock);
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(PORT);
sock_err = bind(sock,(SOCKADDR*)&sin,sizeof(sin));
if (sock_err !=SOCKET_ERROR)
{
sock_err=listen(sock,5);
printf("listage du port %d...\n",PORT);
if (sock_err !=SOCKET_ERROR)
{
printf("veuillez patienter pendant que la connexion soit etablie");
csock=accept(sock,(SOCKADDR*)&csin,&recsize);
printf("le client se connecte avec la socket %d de %s :%d\n",csock, inet_ntoa(csin.sin_addr),htons(csin.sin_port));
if (recv(csock,buffer2,30,0) != SOCKET_ERROR)
{
sock_err = send(csock,buffer,30,0);
printf("le message est recu : %s\n",buffer2);
}
if (sock_err != SOCKET_ERROR)
printf("message envoyee : %s\n",buffer);
else
printf("erreur de transmissin\n");
shutdown(csock,2);
}
}
printf("fermeture de la socket...\n");
closesocket(sock_err);
printf("fermeture du serveur\n");

}

closesocket(sock);
getchar();
return EXIT_SUCCESS;
}
0
titou > chanouza
 
mais il lui fallait un client serveur sous windows et non linux
0
YannK
 
salut mon pot,

je suis aussi en Informatique et pour mon projet de fin de cycle je travail sur la programmation réseau avec des sockets. je m'étais dis de le faire en c mais mon chèr je trouve mieux de le faire en c# ou en java car il y a déjà la class socket implémentée que tu poura utiliser.
merçi
0