G vraiment pas le temps de regardé le code en détail la mais sincerement, au lieu de te faire ***** a crée ca, je te conseille de regardé la source
http://www.cppfrance.com/article.aspx?ID=1875, tu vera, c bien fait, largement suffisant ds la plupart des cas et assez pratique (^_^)
-------------------------------
Réponse au message :
-------------------------------
> 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 !
>