Voici l'exemple de client
#include <iostream>
#include "mk_socket.h"
//Cette fonction est appelée après que le socket se soit connecté au serveur
void on_connect(mk_socket& sck,void* data);
// mk_socket est une réference vers le socket en utilisation
// data est un pointeur vers une donnée envoyer pour l'utiliser n'oublier pas de le caster
//Cette fonction est appelé lorsque des données arrive du réseau. La fonction ne fait qu'imprimer ce texte à l'écran.
void on_data_arrival(mk_socket& sck, char* str, int size, void* data);
// mk_socket est une réference vers le socket en utilisation
// str est la chaine de caractère ressu
// size est la taille de str
// data est un pointeur vers une donnée envoyer pour l'utiliser n'oublier pas de le caster
int main()
{
mk_socket sock //création du mk socket
// Affecte les fonction callback de connection et de reception de donnée
// Le NULL peux être remplacé par une adresse mémoire ressue par l'attribut 'data'(voir plus haut)
sock.SetOnConnectCallBack(on_connect, NULL); //Cette fonction est obligatoire comme la 'requeste' pour le server
sock.SetDataArrivalCallBack(on_data_arrival, NULL);
int port;
std::cout << "port ?" << std::endl;
std::cin >> port;
char adr[100];
std::cout << "adresse ?" << std::endl;
std::cin >> adr;
//Se connecte au server
sock.Connect(serv,port);
//On attend que la connection se ferme et que le socket n'écoute plus.
sock..WaitClose();
return EXIT_SUCCESS;
};
void on_connect(mk_socket& sck,void* data)
{
while(1) //n'arrête pas deboucler
{
char texte [100];
std::cin >> texte;
sck.Send(texte);
}
};
void on_data_arrival(mk_socket& sck, char* str, int size, void* data)
{
std::cout << str << endl; //Écrit le texte reçu
return;
};Hors ligne
Ce post devait peut être déplacer dans le forum tutoriels.
Si vous avez des question n'hésiter pas
Hors ligne
le code est directement compatible windows linux ?
Hors ligne
Oui la lib est compatible win et linux. La lib est disponible sur l'upload. Elle n'est aps de moi je l'est juste debugguer.
Hors ligne
Je comprend pas ce que tu veux par l'invite de commande... je sais pas ce que c'est..
a+
Hors ligne
Tape démarrer executer et tape cmd. le voila l'invite de commande dans windob
Hors ligne
a ok merci et tape : EDIT.COM pour tomber sur un editeur de texte asm ! ;-)
Hors ligne
Salut jai un blem quand j'essaye de compiler un projet sous dev-cpp avec la lib...
Je link mk_socket.a
Je met les header dans les includes mais quand je compile le tuto de smea voila ce que j'ai :
Compilateur: Default compiler
Building Makefile: "C:\\Dev-Cpp\\Makefile.win"
Exécution de make...
make.exe -f "C:\\Dev-Cpp\\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4.2/mingw32" -I"include/c++/3.4.2" -I"include" -I"E:/travail/source/Sources/src/mk_socket"
g++.exe main.o -o "Projet1.exe" -L"lib" -L"E:/travail/source/Sources/src/mk_socket" E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0xe2):mk_socket.cpp: undefined reference to `WSAStartup@8'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x18c):mk_socket.cpp: undefined reference to `WSAStartup@8'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x236):mk_socket.cpp: undefined reference to `WSAStartup@8'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x336):mk_socket.cpp: undefined reference to `WSAStartup@8'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x42a):mk_socket.cpp: undefined reference to `WSACleanup@0'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x47a):mk_socket.cpp: undefined reference to `WSACleanup@0'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x4ca):mk_socket.cpp: undefined reference to `WSACleanup@0'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x64b):mk_socket.cpp: undefined reference to `socket@12'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x683):mk_socket.cpp: undefined reference to `connect@12'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x729):mk_socket.cpp: undefined reference to `closesocket@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x784):mk_socket.cpp: undefined reference to `socket@12'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x7da):mk_socket.cpp: undefined reference to `bind@12'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x7ef):mk_socket.cpp: undefined reference to `closesocket@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x811):mk_socket.cpp: undefined reference to `listen@8'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x826):mk_socket.cpp: undefined reference to `closesocket@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x8b8):mk_socket.cpp: undefined reference to `closesocket@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0x974):mk_socket.cpp: undefined reference to `send@16'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0xa48):mk_socket.cpp: undefined reference to `recv@16'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0xae3):mk_socket.cpp: undefined reference to `accept@12'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0xb44):mk_socket.cpp: undefined reference to `closesocket@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(mk_socket.o)(.text+0xb98):mk_socket.cpp: undefined reference to `closesocket@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(gestion.o)(.text+0x1e):gestion.cpp: undefined reference to `htons@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(gestion.o)(.text+0x68):gestion.cpp: undefined reference to `gethostbyname@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(gestion.o)(.text+0x8f):gestion.cpp: undefined reference to `inet_ntoa@4'
E:/travail/source/Sources/src/mk_socket/release/dev/mk_socket.a(gestion.o)(.text+0x9a):gestion.cpp: undefined reference to `inet_addr@4'
Merci a+
Hors ligne
bon je suis pas spécialiste de Dev, (loin de la, je déteste ce truc et je desteste bosser sous windows) mais dans mon tuto sur les threads posix, j explique que la procedure pour inclure des .h et .a est la suivante :
"JK" Ecris:
prends les .h et copie les dans DevCpp\\include\\
prends les .a et .lib et copie les dans DevCpp\\lib
prends les .dll et copie les dans Dev-Cpp/bin (si yen a)
"JK" Ecris:
Cree un projet
Va dans Projet/option du projet/ choisis l'onglet parametre
clique sur "ajouter fichier", trouve les .lib et les .a et ajoute les
si tu a du mal a les retrouver dans DevCpp\\lib, tu peux aussi copier les .lib et les .a dans le repertoire projet (ou ailleur) et les lier de la meme facon, tu pourra alors déplacer ton répertoire sans souci
Hors ligne
C'est bon je devais juste linker winsock avec !
Merci
a+
Hors ligne
Jerry Kan: ça compile sous linux, mais la gestion des threads pose problème à l' exécution.
Citez vos sources les amis http://www.cppfrance.com/codes/MK_SOCKET-BIBLIOTHEQUE-COMPLETE-TRES-SIMPLE-GESTION-SOCKET-TCP_35366.aspx
Hors ligne
katsankat Ecris:
Jerry Kan: ça compile sous linux, mais la gestion des threads pose problème à l' exécution.
Citez vos sources les amis http://www.cppfrance.com/codes/MK_SOCKET-BIBLIOTHEQUE-COMPLETE-TRES-SIMPLE-GESTION-SOCKET-TCP_35366.aspx
Hors ligne
Je me suis mit a cette lib pour de bon et la j'ai un probleme...
Comment faire pour recevoir des donne dans une autre fonction ?
Merci A+
Hors ligne
maitrelame12545 Ecris:
Je me suis mit a cette lib pour de bon et la j'ai un probleme...
Comment faire pour recevoir des donne dans une autre fonction ?
Hors ligne
katsankat Ecris:
Jerry Kan: ça compile sous linux, mais la gestion des threads pose problème à l' exécution.
Citez vos sources les amis http://www.cppfrance.com/codes/MK_SOCKET-BIBLIOTHEQUE-COMPLETE-TRES-SIMPLE-GESTION-SOCKET-TCP_35366.aspx
Hors ligne
Pages: 1
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 159 invités en ligne membre en ligne: - RSS Feed |