begin process at 2012 05 29 14:13:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Problème de Compilation (avec classes)


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

Problème de Compilation (avec classes)

lundi 14 mars 2011 à 16:45:54 | Problème de Compilation (avec classes)

baptchr55


Bonjour à tous...
Voilà, j'ai un nouveau problème.
J'ai une classe (permettant de créer des Sockets TCP) et lorsque j'essaye de créer un objet Socket j'ai un problème de compilation. Je ne sait pas du tout d'où vient le Pb...

Si quelqu'un a une idée ???

**********Fichier Socket.cpp********
#include "socket.h"
#include <string.h>


***


//************Constructeur
my_socket::my_socket(int sock_port){


// strcpy(recev,"0:0;");

// std::cout << "constructeur\n";

//for(int t=0; t>Buff_L;t++) { recev[t]=';'; } //mise a 0 de recev

/* Acquisition d'un descripteur de socket. */
bzero((char*) &sockaddr_server, sizeof(sockaddr_server));
socket_server = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_server.sin_family = AF_INET;
sockaddr_server.sin_port = htons(sock_port);
sockaddr_server.sin_addr.s_addr = htonl(INADDR_ANY);
//sockaddr_server.sin_addr.s_addr = inet_addr("192.168.0.62");


server_len = sizeof(sockaddr_server);
client_len = sizeof(sockaddr_client);

}

//************destructeur
my_socket::~my_socket(){
close(socket_client); //fermeture du socket
}


//************close
void my_socket::s_close(){
close(socket_client); //fermeture du socket
}
//************Accept
void my_socket::s_accept() {


if (socket_server == -1) { perror("socket()"); exit (EXIT_FAILURE); }
bind(socket_server, (struct sockaddr *)&sockaddr_server, server_len);

if (listen(socket_server, 10) == -1) { perror("listen()"); exit(EXIT_FAILURE); }

client_len = sizeof(sockaddr_client);
//***************
socket_client=accept(socket_server,(struct sockaddr *)&sockaddr_client,&client_len);

//ioctlsocket(socket_client, FIONBIO, 0);
}


//************Recev
char* my_socket::rcv(){
recv(socket_client, recev, Buff_L, 0);
return recev;
}
//************Send
void my_socket::snd(char to_send[Buff_L] ){
send(socket_client, to_send, (sizeof(to_send)+2), 0);
// send(socket_client, to_send, Buff_L, 0);
}

*************** Main.cpp ****************

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "socket.h"

using namespace std;

int main()
{
my_socket mon_port(1501); //je ne fais que créer un objet !


return 0;
}


************** ERREUR **********

undefined référence to my_socket::my_socket(int)
lundi 14 mars 2011 à 17:31:54 | Re : Problème de Compilation (avec classes)

CptPingu

Administrateur CodeS-SourceS
- Évite les "using namespace", voir: [ Lien ]
- On différencie généralement un nom de classe (en Pascal Case: MaClasse) d'une variable (en Camel Case: maVariable ou en C Case: ma_variable)

Ce n'est pas une erreur de compilation, mais de link. Tu ne compiles pas avec l'objet socket, c-est-à-dire que tu ne mets pas Socket.cpp dans ta chaîne de compilation.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
lundi 14 mars 2011 à 18:46:05 | Re : Problème de Compilation (avec classes)

baptchr55




Il me faut donc un #include <socket.cpp> ???
Ce n'est pas très très commun ! Ou je nais pas saisi ?
Merci en tt cas de l'attention que tu me portes !
lundi 14 mars 2011 à 18:53:06 | Re : Problème de Compilation (avec classes)

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !

Il me faut donc un #include <socket.cpp> ???


Non, surtout pas !

Il faut que tu indiques le fichier cpp dans ta compilation.
Sous Linux (désolé, je n'ai pas Windows, mais le principe est le même).
Au lieu de faire:

g++ main.cpp -o programme


Il faut faire:

g++ main.cpp socket.cpp -o programme



________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
lundi 14 mars 2011 à 19:12:32 | Re : Problème de Compilation (avec classes)

baptchr55




Je ne travail que sous UNIX ! Ceci explique bien des choses ! En général pour de programmes simples je code sous gedit mais lorsque cela se complique j'utilise codeblocks ! Je fais donc rarement ce genre de choses !
Sa me dépanne vraiment bien !
Merci beaucoup de ton aide !
mardi 15 mars 2011 à 15:25:48 | Re : Problème de Compilation (avec classes)

baptchr55




En ce qui concerne le caractère de fin de chaine lors de la réception d'une trame... Aurais tu une idée de comment la supprimer ??

je reçoit quelque chose de ce type :

Trame recu : 1 0 1 0 0&#65533;&#65533;&#65533;TJ<
Trame recu : 1 0 0 -1 0&#65533;&#65533;TJ<
Trame recu : 1 0 0 1 00&#65533;&#65533;TJ<

Mon main :

************************************

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "socket.h"

using namespace std;

int main()
{
my_socket mon_port(1501);
cout<<"\nOuverture du Port 1501\n";

char *trame_sock;
trame_sock = new char[515];

std::cout << "\n\n*********Attente de commande*********\n ";
mon_port.s_accept();
while(1)
{
trame_sock=mon_port.rcv();

std::cout << "Trame recu : "<< trame_sock <<"\n";
}

return 0;
}


Cette discussion est classée dans : server, client, socket, my, sockaddr


Répondre à ce message

Sujets en rapport avec ce message

Probleme de Client Serveur [ par Krox68 ] voila jaimerais faire un programme client qui puisse se connecter a ce serveur : #include void main(){ WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WS client & server [ par Stormy ] J'ai codé un serveur simple usant de TCP. Comme client j'utilise NetCat. Or, quand NetCat 'ferme', mon serveur ne détecte pas la clôture de la relatio Etat Socket Linux [ par cybermax62 ] Existe-t-il un moyen de connaître sur un server (socket,C) l'état d'un connection client (socket,C) utilisant le protocole SOCK_STREAM ? Actuellement Client Server -> le faire fonctioner comme un trojan [ par wxccxw ] Salut, enfaite, j'aimerai faire un client -> serveur, je maitrise pas mal les socket, mais je n'ai pas compris a quoi sa sert : recv(); c pour recevo chat client server [ par electroonn ] Bonjour, j'essaye de developper avec c++ une application de chat (client-server) sous windows, en voici le code:Server server; Client client; void m delay client sur server socket linux [ par 0x0syscall ] Bonjour,Voilà, je voudrais savoir comment je dois m'y prendre pour que sur mon serveur si le client ne repond pas au bout de X secondes, le serveur co problème chat [ par Adict ] salut tout le monde [^^happy17] alors j'ai commencé depuis peu à vouloir créer un "chat" simple. j'utilise donc les sockets qui marchent mais j'ai 2 [C.] 2 Problèmes sur le serveur [ par Adict ] bonsoir tout le monde. [^^happy13] alors ça va faire vraiment longtemps que je patine sur mon serveur. J'ai cherché et cherché pour le 2ème problème plantage du serveur [ par Adict ] Bonjour [^^happy13] alors voila j'ai fini un projet mais il y a un problème. Il se compose d'une application client et serveur. Il y a quelque temps dns socket server client distants [ par Snyps ] Bonjour, Je galère avec les sockets. J'ai créé un server et un client qui se connectent en local. Pas de soucis. Mais comment faire pour ce qui est


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,125 sec (4)

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