Re: type de packet / connection au serveur D.
Alors J'imagine que ça n'affiche rien car je reçois surement des données de type HEXA/octet alors que j'essaie d'afficher une chaine de caractères ? Il faut surement que je lise écrive en HEXA/octets. Si c'est le cas pouvez vous m'indiquer quelle bibliothèque utiliser ? (j'ai trouver MiscUtil pour C# mais je n'ai rien trouvé pour le C++).
voici le code :
Cliquez pour révéler
Cliquez pour masquer
#include <winsock2.h>
#include <QWidget>
#include <QMessageBox>
#include <vector>
#include <iostream>
typedef int socklen_t;
#define PORT 5555
#define ADRESSE_IP "213.248.126.39"
using namespace std;
bool getData(QWidget &parent)
{
WSADATA wsa;
int erreur = WSAStartup(MAKEWORD(2, 2), &wsa);
// Socket
SOCKET sock;
SOCKADDR_IN sin;
socklen_t sin_size = sizeof(sin);
int sock_err;
vector<char> getChar(5000);
if(!erreur)
{
sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock != INVALID_SOCKET)
{
sin.sin_addr.s_addr = inet_addr(ADRESSE_IP);
sin.sin_family = AF_INET;
sin.sin_port = htons(PORT);
if(connect(sock, (SOCKADDR*)&sin, sin_size) != SOCKET_ERROR)
{
int ok = recv(sock, getChar.data(), getChar.size(), 0);
if(ok != SOCKET_ERROR)
{
getChar.resize(ok);
QMessageBox::information(&parent, "valeur du paquet", getChar.data());
}
}
else
QMessageBox::warning(&parent, "Réseau", "Impossible de se connecter, getData::reseau");
}
else
QMessageBox::warning(&parent, "Réseau", "Impossible d'initialiser la socket, getData::reseau");
}
else
QMessageBox::warning(&parent, "Réseau", "Impossible d'initialiser la bibliotheque WINSOCK, getData::reseau");
// Fermer les sockets
closesocket(sock);
WSACleanup();
return true;
}
Quelques information sur le code :
-J'utilise Qt pour créer une interface graphique et la fonction QMessageBox sert a afficher une boite de dialogue usuelle a l'écran.
-Je créer une connexion utilisant le protocole TCP