| 12
 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
 
 |  
void* ping(void* data)
{
	int port = *(int *)data;
    	SOCKET sock;
	int n = 0;
	char buffer[2];
   	SOCKADDR_IN sin = { 0 };
    	SOCKET csock;
	SOCKADDR_IN csin;
	socklen_t recsize = sizeof(csin);
	int sock_err;
	sock = socket(AF_INET, SOCK_DGRAM, 0);
	if(sock == INVALID_SOCKET)
	{
    		perror("socket()");
    		return NULL;
	}
 
	sin.sin_addr.s_addr = htonl(INADDR_ANY);
 
	sin.sin_family = AF_INET;
 
	sin.sin_port = htons(port);
 
	if(bind (sock, (SOCKADDR *) &sin, sizeof sin) == SOCKET_ERROR)
	{
    		perror("bind()");
    		return NULL;
	}
	struct hostent *hostinfo = NULL;
	SOCKADDR_IN from = { 0 };
	int fromsize = sizeof from;
	while(1){
	//poll + si fin, arrêter (break)
	if((n = recvfrom(sock, buffer, sizeof buffer - 1, 0, (SOCKADDR *)&from, &fromsize)) < 0)
	{
    		perror("recvfrom()");
    		return NULL;
	}
 
	buffer[n] = '\0';
 
	if(sendto(sock, buffer, n, 0, (SOCKADDR *)&from, fromsize) < 0)
	{
    		perror("sendto()");
    		return NULL;
	}
	}
	closesocket(sock);
	return NULL;
} | 
Partager