svp je voudrais modifier cette fonction pour utiliser un nom de domaine à la place d'une ip en arguments :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
int sockopen(SOCKET* Client, char* host, int port)
{
    WSADATA WSAData;
    if (WSAStartup(MAKEWORD(2, 2), &WSAData)) {
		return FALSE_WINSOCK;
    }
	SOCKADDR_IN ClientSock;
	*Client = INVALID_SOCKET;
    HOSTENT* ServerInfos = NULL;
    if (!(ServerInfos = gethostbyname(host))) {
		WSACleanup();
		return FALSE_HOST;
    }
    memset(&ClientSock, 0, sizeof(SOCKADDR_IN));
    memcpy(&ClientSock.sin_addr.s_addr, ServerInfos->h_addr, ServerInfos->h_length);
    ClientSock.sin_port = htons(port);
    ClientSock.sin_family = AF_INET;
    if (!(*Client = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP))) {
		WSACleanup();
		return FALSE_SOCKET;
    }
    if (connect(*Client, (SOCKADDR*) &ClientSock, sizeof(SOCKADDR_IN))) {
		WSACleanup();
		return FALSE_CONNECT;
    }
 
	// fonction de reception:
    DWORD RecvThreadID = 0;
	HANDLE RecvThread = NULL;
 
	if (!(RecvThread = CreateThread(NULL, 0, &ClientRecv, Client, 0, &RecvThreadID))) {
		WSACleanup();
		return FALSE_THREAD;
    }
    CloseHandle(RecvThread);
 
	return BUBSOCK_OK;
}