begin process at 2012 05 30 14:03:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Réseau & Internet

 > 

programmation socket serveur client c/c++


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

programmation socket serveur client c/c++

samedi 14 mai 2011 à 22:09:54 | programmation socket serveur client c/c++

beni91

Bonsoir, je dois coder un serveur en c sous Windows avec comme compilateur borland mais j'ai des erreur que je n'arrive pas a résoudre.
J'ai fait des quelques recherche mais je n'est rien trouver de spécial.
voici mon code


#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#include <winsock.h>
#include <io.h>


#define PORT 4000

int main()
{
struct sockaddr_in nom;
int sd, acc, lg;
int optval=1;
char buff[32];

char nom_serveur[15];

/****************************************/
/* OBTENTION D'UN DESCRIPTEUR DE SOCKET */
/****************************************/

sd=socket(AF_INET, SOCK_STREAM,0);

if (sd==-1)
{
printf("appel socket refuse\n");
exit(0);
}
/* Changement du parametre de la socket pour permettre */
/* une reutilisation immediate apres sa fermeture */
int setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(int));

bzero((char*)&nom,sizeof(nom));
nom.sin_port=htons(PORT);
nom.sin_addr.s_addr= INADDR_ANY;
nom.sin_family=AF_INET;

/* BIND */
/********/

if ((bind(sd,(struct sockaddr*)&nom,sizeof(nom))==-1))
{
printf("ERREUR SUR BIND");
exit(2);
}

/**********/
/* LISTEN */
/**********/
listen(sd,1);

/*********************/
/* MESSAGE D'ACCEUIL */
/*********************/

if ((gethostname(nom_serveur,sizeof(nom_serveur)))==-1)
{
perror("1 HOST LOCAL INCONNU");
exit(2);
}

printf("========================================\n");
printf(" SERVEUR SUR %s \n",nom_serveur);
printf("========================================\n");

/**********/
/* ACCEPT */
/**********/

lg=sizeof(nom);
acc=accept(sd,(struct sockaddr*)&nom,&lg);
if (acc<0)
{
printf("appel a accept refuse\n");
exit(0);
}

/************************************/
/* LECTURE DU MESSAGE SUR LA SOCKET */
/************************************/

read(acc,buff,32);
printf("%s\n",buff);
close(acc);
close(sd);
}

et les erreur que j'obtient

sreveur.cpp(36,19):)expected
sreveur.cpp(38,7):Call to undefined function 'bzero'
dimanche 15 mai 2011 à 11:10:52 | Re : programmation socket serveur client c/c++

aardman

Membre Club
salut,
1) le int est en trop avant le nom de la fonction setsockopt.
2) a la place de bzero tu peux utiliser memset.
dimanche 15 mai 2011 à 19:32:31 | Re : programmation socket serveur client c/c++

beni91

Salut aardman je vais essayé tes proposions tout de suite. Merci de m'avoir répondu
dimanche 15 mai 2011 à 20:19:09 | Re : programmation socket serveur client c/c++

beni91

Salut voila apres essay 3 erreurs s'affiche

- serveur.cpp(37,63):Cannot convert 'int *'to 'const char*'
-serveur.cpp(37,63):Type mismatch in parameter 'optval' in call'__stdcall setcokopt(unsigned int, int, int, const char *,int)'
-serveur.cpp(39,32):Too few parameters in call to 'memset(void *,int,unsigned int)'

Cordialement.
lundi 16 mai 2011 à 09:10:00 | Re : programmation socket serveur client c/c++

aardman

Membre Club
salut,
lis les messages d'erreurs! tout est expliqué.
les deux premiers te disent que le 4eme param de setsockopt() n'est pas un int* mais un const char*.
le troisième te dis que tu n'as pas donné assez d'arguments a la fonction memset, qui en prend 3.
lundi 16 mai 2011 à 14:03:04 | Re : programmation socket serveur client c/c++

beni91

salut, le probleme c'est que le 4eme paramétre passé a la fonction setsockopt() n'est pas un const char* mais il est déclaré comme un int.Je ne comprend pas pourquoi le compilateur le considère comme un const char*?
lundi 16 mai 2011 à 15:33:31 | Re : programmation socket serveur client c/c++

aardman

Membre Club
salut,
const char* c'est le type attendu par la fonction, et toi tu lui donnes un int*, il manque un cast.


Cette discussion est classée dans : serveur, printf, include, socket, sd


Répondre à ce message

Sujets en rapport avec ce message

Probleme reception sur un serveur windows en vc++ [ par alfred ] Salut a tous!!g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi, toute mes socket sont positives le client envois Serveur Vc++6 pb dans recv [ par alfred ] Salut a tousJ'ai un probleme dans mon serveur et je ne sais pas comment le resoudre. Le client se connecte bien et envoie le bon nombre de caracteres encore mon serveur [ par skysee ] bonjour,je suis toujours avec mon serveur en c sous visual c++ sous windows(sis eulement j'avais linux).Le problème est que je n'ai pas d'erreur de co socket [ par flatou ] salutvoila le code du serveur sous dos que j'ai fait :#include #include #include #pragma comment(lib, "ws2_32.lib")SOCKET s;SOCKET c;SOCKET result;soc 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 protocole TCP HELP me [ par lolobardon ] Bonjour à tous,je suis actuellement à Pékin pour effectuer un semestre d'études. Je suis élève ingénieur en électronique mais l'embêtant c'est qu'ici Toujours besoin d'aide sur socket avec 2 cartes reseau [ par Jeff_Trek ] Bonjour,Je reçois des trames grace à ma socket cliente (qui doit être liée à une carte reseau), et renvoyer ces trames via une socket serveur (qui doi Erreur de segmentation d'un simple client http sous linux !! [ par nassimatique ] #include #include #include #include #include #include #include #define TAILLE 4096 <b Application Socket transfert fichiers [ par aymane2006 ] bjr en fait je cherche une application de transfert de fichiers,un ou plusieurs clients qui se connectent a un serveur,une fois la connection établie Recv bloque la première fois... [ par rom2n ] Bonjour à tous, je suis en train de programmer un jeu (rpg 2D avec direct3D) en réseau. J'ai structuré mon programme en différentes classes à savoir p


Nos sponsors


Sondage...

Comparez les prix

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

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