|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 845
|
[C] Socket TCP/UDP.Come ricavo l'ip locale??
Supponiamo di avere 2 macchine
una con una scheda di rete avente indirizzo 192.168.3.1 (server) di cui conosco l'ip e un'altra macchina, con scheda di rete 192.168.3.x (con x>1) che si connette al server di cui conosce l'indirizzo. La connessione TCP avviene con Codice:
struct sockaddr_in server_tcp;
server_tcp.sin_family = AF_INET;
server_tcp.sin_port = htons(PORT_TCP);
if ( (inet_pton(AF_INET,"192.168.3.1", &server_tcp.sin_addr)) <= 0)
{
perror("Address creation error");
}
if ((sock_tcp = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("socket");
exit(1);
}
printf(" Mi connetto al server via TCP ... in attessa di risposta\n");
if (connect(sock_tcp, (struct sockaddr *)&server_tcp, sizeof(struct sockaddr)) == -1)
{
perror("connect");
exit(1);
}
Ossia l'indirizzo (liv3-ip) della scheda di rete che si sta collegando al server? Ultima modifica di parisisalvo : 10-11-2005 alle 17:03. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Dopo la connect, esegui:
Codice:
struct sockaddr_in addr; socklen_t len = sizeof(addr); getsockname(socket_fd, (struct sockaddr *) &addr, &len); Sì, chi ha stabilito questi standard fumava roba illegale.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 845
|
Ciao ilsensine,
grazie mille per la risposta... una cosa, ovviamente socket_fd, che uso in getsockname, ha funzionalita' dopo la connect (socket_fd, ... , ... ) giusto? ossia, se eseguo getsockname(socket_fd, (struct sockaddr *) &addr, &len); prima della connect mi torna 0.0.0.0 |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:58.



















