Bonjour,
J'ai lu le tutoriel de The Warlus sur les sockets, mais mon IDE (Code::Blocks) ne veut pas compiler, même quand je prends des exemples de l'article.
Il fait comme si je n'avais pas inclus winsock2. Pourtant, il reconnait le type "WSAData".
Par exemple:
Je mets ce code:
Et il me répond ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <stdio.h> #include <stdlib.h> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") int main(void) { WSADATA WSAdata; WSAStartup(MAKEWORD(2,0), &WSAdata); SOCKET sock; SOCKADDR_IN sin; char *buffer; sin.sin_addr.s_addr = inet_addr("ip"); sin.sin_family = AF_INET; sin.sin_port = htons(6667); sock=socket(AF_INET, SOCK_STREAM, 0); connect(sock, (SOCKADDR *)&sin, sizeof(sin)); recv(sock, buffer, sizeof(buffer), 0); closesocket(sock); WSACleanup(); system("PAUSE"); return 0; }
ça doit être tout bête, je sais...Switching to target: default
Compiling: main.c
Linking console executable: C:\testcodeblocks.exe
.objs\main.o:main.c: (.text+0x45): undefined reference to `WSAStartup@8'
.objs\main.o:main.c: (.text+0x54): undefined reference to `inet_addr@4'
.objs\main.o:main.c: (.text+0x72): undefined reference to `htons@4'
.objs\main.o:main.c: (.text+0x98): undefined reference to `socket@12'
.objs\main.o:main.c: (.text+0xc1): undefined reference to `connect@12'
.objs\main.o:main.c: (.text+0xec): undefined reference to `recv@16'
.objs\main.o:main.c: (.text+0xfd): undefined reference to `closesocket@4'
.objs\main.o:main.c: (.text+0x105): undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
Merci d'avance.
Partager