Posez votre question Signaler

[build Error] [serveur.exe] Error 1

taha - Dernière réponse le 17 juin 2007 à 13:19
bonjour a tout le monde , je tien a féliciter toutes les personnes responsables pour ce site, merci davance ,pour resoudre mon probleme ,
voila ,
je code un serveur windows en C , sous dev cpp ,
voila mon code


#include "stdio.h"
#include "winsock2.h"// pour les fonctions socket
#include <cstdio> // Pour les Sprintf

#pragma comment(lib,"ws2_32.lib")

WSADATA initialisation_win32; // Variable permettant de récupérer la structure d'information sur l'initialisation
int erreur; // Variable permettant de récupérer la valeur de retour des fonctions utilisées
int tempo; // Variable temporaire de type int
int nombre_de_caractere; // Indique le nombre de caractères qui a été reçu ou envoyé
char buffer[65535]; // Tampon contenant les données reçues ou envoyées
SOCKET id_de_la_socket; // Identifiant de la socket
SOCKET id_de_la_nouvelle_socket; // Identifiant de la nouvelle socket
SOCKADDR_IN information_sur_la_source; // Déclaration de la structure des informations lié à l'écoute

int main (int argc, char* argv[])
{
printf("\nBonjour, vous etes du cote serveur.\n");

// ********************************************************
// Initialisation de Winsock
// ********************************************************
erreur=WSAStartup(MAKEWORD(2,2),&initialisation_win32);
if (erreur!=0)
printf("\nDesole, je ne peux pas initialiser Winsock du a l'erreur : %d %d",erreur,WSAGetLastError());
else
printf("\nWSAStartup : OK");

id_de_la_socket=socket(AF_INET,SOCK_STREAM,0);
if (id_de_la_socket==INVALID_SOCKET)
printf("\nDesole, je ne peux pas creer la socket du a l'erreur : %d",WSAGetLastError());
else
printf("\nsocket : OK");

tempo=1;
erreur=setsockopt(id_de_la_socket,IPPROTO_TCP,TCP_NODELAY,(char *)&tempo,sizeof(tempo));
if (erreur!=0)
printf("\nDesole, je ne peux pas configurer cette options du à l'erreur : %d %d",erreur,WSAGetLastError());
else
printf("\nsetsockopt : OK");

information_sur_la_source.sin_family=AF_INET;
information_sur_la_source.sin_addr.s_addr=INADDR_ANY; // Ecoute sur toutes les IP locales
information_sur_la_source.sin_port=htons(33333); // Ecoute sur le port 33333
erreur=bind(id_de_la_socket,(struct sockaddr*)&information_sur_la_source,sizeof(information_sur_la_source));
if (erreur!=0)
printf("\nDesole, je ne peux pas ecouter ce port : %d %d",erreur,WSAGetLastError());
else
printf("\nbind : OK");


erreur=99; // Initiation de erreur pour être sur que l'on va rentrer dans la boucle
while(erreur!=0) // Boucle tant qu'une demande de session (SYN) tcp n'a pas été reçu
erreur=listen(id_de_la_socket,1);
printf("\nlisten : OK");


printf("\nAttente de la reception de demande d'ouverture de session tcp (SYN)");
tempo=sizeof(information_sur_la_source); // Passe par une variable afin d'utiliser un pointeur
id_de_la_nouvelle_socket=accept(id_de_la_socket,(struct sockaddr*)&information_sur_la_source,&tempo);
if(id_de_la_nouvelle_socket==INVALID_SOCKET)
printf("\nDesole, je ne peux pas accepter la session TCP du a l'erreur : %d",WSAGetLastError());
else
printf("\naccept : OK");

nombre_de_caractere=recv(id_de_la_nouvelle_socket,buffer,1515,0);
if (nombre_de_caractere==SOCKET_ERROR)
printf("\nDesole, je n'ai pas recu de donnee");
else
{
buffer[nombre_de_caractere]=0; // Permet de fermer le tableau après le contenu des data, car la fonction recv ne le fait pas
printf("\nVoici les donnees : %s",buffer);
}

erreur=shutdown(id_de_la_nouvelle_socket,2); // 2 signifie socket d'émission et d'écoute
if (erreur!=0)
printf("\nDesole, je ne peux pas fermer la session TCP du a l'erreur : %d %d",erreur,WSAGetLastError());
else
printf("\nshutdown : OK");


erreur=closesocket(id_de_la_nouvelle_socket);
if (erreur!=0)
printf("\nDesole, je ne peux pas liberer la socket du a l'erreur : %d %d",erreur,WSAGetLastError());
else
printf("\nclosesocket : OK");
erreur=closesocket(id_de_la_socket);
if (erreur!=0)
printf("\nDesole, je ne peux pas liberer la socket du a l'erreur : %d %d",erreur,WSAGetLastError());
else
printf("\nclosesocket : OK");

erreur=WSACleanup(); // A appeler autant de fois qu'il a été ouvert.
if (erreur!=0)
printf("\nDesole, je ne peux pas liberer winsock du a l'erreur : %d %d",erreur,WSAGetLastError());
else
printf("\nWSACleanup : OK");
}
------------
jai resoulu des probelemes de linkage avant ,
mais la jai un pti souci ,
mon erreur est
D:\Documents and Settings\..\serveur\Makefile.win [Build Error] [serveur.exe] Error 1
il arrive pas a compiler , cela est du o linkage encore ,jai trop chercher sur ce type derreur , jai essayé dinclur bcp de trucs dans les
link , mais rien , tjs rien
voila
peace
a plus:::::::::))))
Lire la suite 

[build Error] [serveur.exe] Error 1 »

4 réponses
Réponse
+0
moins plus
Pareil, c pas pourquoi..
Ajouter un commentaire
Réponse
+0
moins plus
deplus y a dix minute je compilais l'exe sans erreu, maintenant ça me fait ça.

Trop fluctuant
Ajouter un commentaire
Réponse
+0
moins plus
ps: projet > option projet > libraire > dans les menu.
Ajouter un commentaire
Réponse
+0
moins plus
j'ai trouvé.
Si tu a changer ton projet de répertoire, tu dois changer le chemin des repertoire de tes librairies aussi.

Moi j'avais mon projet dans c:\dev-c++\projet.dev
donc la lien de librairie est : /lib/libwsock32.a

Mais apré j'ai mis mon projet.dev dans c:\dev-c++\projet\projet.dev
donc le lien de librairie devient : ../lib/libwsock32.a

Voilà , vérifie, pour moi ça a marcher.
Car c'est un putain de connerie derreur sa mere.
Ajouter un commentaire
Ce document intitulé « [build Error] [serveur.exe] Error 1 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?