Allez J me lance : ca fait des heures et des heures ke le newb ke je suischerche la solution :
D un coté j ai un logiciel client ki envoie "coucou" sur le port d une machine sur un port determiné.
D un autre coté un serveur qui ecoute sur le mm port en tente ( desesperement d afficher ce k il recoit.
Or il affiche n importe koi ac en plus -1 pr le resultat de recv().
Je c ke ce prob en revenu svt sur le forum mais apres des recherches je n ai pas trouV de solutions convaincante. Votre solution servira dc d autres codeurs. Merci d avance pr vos reponses, je vs donne les codes sources :
---------------------------------------------------------------------- Partie serveur
----------------------------------------------------------------------
#include "stdafx.h"
#include <stdlib.h>
#include <iostream.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main(int argc, char* argv[])
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char buffer[64]; /* le buffer */
sock = socket(AF_INET, SOCK_STREAM, 0); /* le sock */
sin.sin_addr.s_addr= INADDR_ANY;
sin.sin_family= AF_INET;
sin.sin_port= htons(1105);
if(bind(sock, (SOCKADDR *)&sin, sizeof(sin)) == -1)
{
cout<<"erreur du bind"; /* erreur */
}
if(listen(sock, 0) == -1)
{
cout<<"erreur du listen"; /* erreur */
}
int sinsize = sizeof(sin);
if(accept(sock, (SOCKADDR *)&sin, &sinsize) == -1)
{
cout << "erreur du accept";
}
int fd;
fd = recv(sock, buffer, sizeof(buffer), 0); /* dc la je recoit*/
cout<<"\n"<<buffer<<"\n"; /* et la j affiche*/
cout<<fd<<"\n";
return 0;
}
---------------------------------------------------------------------
Parite Client
---------------------------------------------------------------------
#include "stdafx.h"
#include <iostream.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main(int argc, char* argv[])
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
/* Tout est configuré pour se connecter sur IRC, haarlem, Undernet. */
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr= inet_addr("IP à modifier");
sin.sin_family= AF_INET;
sin.sin_port= htons(1105);
if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) == -1)
{
cout << "erreur du connect "; /* erreur */
}
if(send(sock, "coucou", 6, 0) == -1) /* on envoie */
{
cout << "erreur du send"; /* erreur */
}
closesocket(sock);
WSACleanup(); /* on ferme tt ca */
int i;
cin>>i; /* pr avoir le tps de lire les erreurs */
return 0;
}
---------------------------------------------------------------------
Bon ben voila
Merci pr votre aide.
A bientot !