1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main(int argc, char *argv[])
{
/* Je te conseille de mettre toutes tes déclarations en début de fichier,
ce sera beaucoup plus compréhensible ;) */
char buff[255] = {0};
/* Les communications réseau utilisent les caractères \r\n pour marquer
une fin de ligne. Si tu définis directement le contenu de ta chaine de
caractères, pas besoin du [50], le compilateur s'en occupera... */
char canal[] = "hello\r\n" ;
WSADATA wsadata;
SOCKET sock;
SOCKADDR_IN sin;
/* Utilises plutôt la version 2,2 ;) */
WSAStartup(MAKEWORD(2,2),&wsadata);
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(2007);
/* Le client n'a pas besoin de bind ni de listen, il a juste besoin de
socket() et de connect()
bind(sock, (SOCKADDR*)&sin, sizeof(sin));
*/
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
/* Même remarque
bind(sock, (SOCKADDR*)&sin, sizeof(sin));
listen(sock, 10);
*/
/* Ca fonctionnera mais je te conseille tout de même de controler
l'envoi de données ;) */
send(sock, canal, strlen(canal) + 1, 0);
/* Pareil */
recv (sock, buff, sizeof(buff), 0);
printf("%s\n\n\n", buff);
closesocket(sock);
WSACleanup();
system("PAUSE");
return 0;
} |
Partager