Ik probeer een client-server systeempje te bouwen op basis van UDP messages. Bij het ontvangen van een berichtje (dat verder prima gaat) lukt het me echter niet het IP-adres en de poort van de zender van het berichtje terug te krijgen.
Dit geeft als output:
INCOMING-FROM-ADDR: 204.40.181.191
INCOMING-FROM-PORT: 1975
Dit terwijl het bericht verzonden is vanaf localhost of 192.168.0.13:2003. Wat doe ik fout?
(Dit alles draait op Linux.)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| int recv_message(int sock, struct sockaddr_in* addr, size_t* alen, message_t* msg) {
int len;
char* buffer;
assert(msg != NULL);
buffer = checked_malloc(BUFFER_SIZE);
len = recvfrom(sock, buffer, BUFFER_SIZE, 0, (struct sockaddr*) addr, alen);
if (len < 0) {
return len;
}
DEBUG("INCOMING-FROM-ADDR: %s\n", inet_ntoa(addr->sin_addr));
DEBUG("INCOMING-FROM-PORT: %i\n", ntohs(addr->sin_port));
parse_message(buffer, len, msg);
return 0;
} |
Dit geeft als output:
INCOMING-FROM-ADDR: 204.40.181.191
INCOMING-FROM-PORT: 1975
Dit terwijl het bericht verzonden is vanaf localhost of 192.168.0.13:2003. Wat doe ik fout?
(Dit alles draait op Linux.)
Rustacean