Newsgroup: it.comp.lang.visual-basic
Titolo: Acquisizione dati da doppia LAN

Ciao A tutto il NG,
avrei un problemino per quanto riguarda l'acquisizione dati da doppia LAN.
Ho installato una scheda di rete aggiuntiva sul mio laptop (PCMCIA), ed ho
provato ad acquisire dati da entrambe, dopo aver opportunamente settato le
schede con indirizzi IP differenti. In realtà riesco a ricevere dati
sempre dalla prima scheda che viene definita dall'applicativo e mai da
entrambe contemporaneamente.
Il codice che utilizzo per l'acquisizione da una delle due schede è:
frmSTART.PSR1.Bind Text1(0) ', ip_lan_1
frmSTART.PSR2.Bind Text1(1) ', ip_lan_1
frmSTART.SSR1.Bind Text1(2) ', ip_lan_1
frmSTART.SSR2.Bind Text1(3) ', ip_lan_1
frmSTART.RHP1.Bind Text1(4) ', ip_lan_1
frmSTART.RHP2.Bind Text1(5) ', ip_lan_1
frmSTART.Add_Port.Bind Text1(8) ', ip_lan_1
frmSTART.Winsock7.Bind Text1(6) ', ip_lan_1
frmSTART.Winsock8.Bind Text1(7) ', ip_lan_1
ipmreqPSR1.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox1.Text)
ipmreqPSR1.ipm_interface = 0
ipmreqPSR2.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox2.Text)
ipmreqPSR2.ipm_interface = 0
ipmreqSSR1.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox3.Text)
ipmreqSSR1.ipm_interface = 0
ipmreqSSR2.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox4.Text)
ipmreqSSR2.ipm_interface = 0
ipmreqRHP1.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox5.Text)
ipmreqRHP1.ipm_interface = 0
ipmreqRHP2.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox6.Text)
ipmreqRHP2.ipm_interface = 0
ipmreqAdd_port.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox17.Text)
ipmreqAdd_port.ipm_interface = 0
ipmreqWinsock7.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox7.Text)
ipmreqWinsock7.ipm_interface = 0
ipmreqWinsock8.ipm_multiaddr = inet_addr(frmPortSetting.MaskEdBox8.Text)
ipmreqWinsock8.ipm_interface = 0
setsockopt frmSTART.PSR1.SocketHandle, 0, 5, ipmreqPSR1, Len(ipmreqPSR1)
setsockopt frmSTART.PSR2.SocketHandle, 0, 5, ipmreqPSR2, Len(ipmreqPSR2)
setsockopt frmSTART.SSR1.SocketHandle, 0, 5, ipmreqSSR1, Len(ipmreqSSR1)
setsockopt frmSTART.SSR2.SocketHandle, 0, 5, ipmreqSSR2, Len(ipmreqSSR2)
setsockopt frmSTART.RHP1.SocketHandle, 0, 5, ipmreqRHP1, Len(ipmreqRHP1)
setsockopt frmSTART.RHP2.SocketHandle, 0, 5, ipmreqRHP2, Len(ipmreqRHP2)
setsockopt frmSTART.Add_Port.SocketHandle, 0, 5, ipmreqAdd_port,
Len(ipmreqAdd_port)
setsockopt frmSTART.Winsock7.SocketHandle, 0, 5, ipmreqWinsock7,
Len(ipmreqWinsock7)
setsockopt frmSTART.Winsock8.SocketHandle, 0, 5, ipmreqWinsock8,
Len(ipmreqWinsock8)
Il codice sopra riportato è poi duplicato per entrambi gli indirizzi IP.
Dove sto sbagliando?
Ciao e grazie a tutti
Peter
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

hai provato con due controlli winsock che puntano ai due differenti
indirizzi ip?
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
www.nicolaottomano.it

 indirizzi ip?
Si, infatti ho 8 winsock che devono acquisire dati in funzione da quale
sia l'indirizzo IP di provenienza.
Il mio problema di fondo è sapere se i parametri definiti nel setsockopt
siano corretti e quali devono essere variati in funzione dell'indirizzo Ip
da considerare.
Ciao
Grazie


non ti so dire. purtoppo io lavoro solo con una scheda di rete.
posso chiedere al mio compagno di stanza quando torna, perchè lui usa una
doppia scheda (una wireless PCMCIA e una Ethernet).


grazie 1000
Ciao



CUT
Scusa l'ignoranza ma la cosa della doppia scheda non riesco a capirla.
Su quale sistema operativo ?
A quanto sapevo io, sel il sistema operativo è MS ma non Server, le tue due
schede creano 2 network separate e solo una delle 2 è quella utilizzabile (o
quella predefinita).
A meno che tu non stia utilizzando schede e switch con supporto LACP
(dovrebbe essere il protocollo 802.3?), dovresti avere  problemi di
risoluzione dei nomi e tanti altri piccoli problemi, specialmente se sei in
un dominio NT/2000.
Se sei su un portatile, devo scartare la possibilità che il SO sia Server;
potresti spiegarmi meglio la configurazione ...
scusa la risposta OT

 Su quale sistema operativo ?
Scusate voi....
La necessità di avere due schede di LAN è dovuta ad una necessità di
ridondanza; in realtà sono due network distinte, e solo su una di esse
sono presenti i dati; il mio applicativo quando non riceve più dati su una
LAN entro un timeout, automaticamente commuta sull'altra alla ricerca
degli stessi. 
Il SO che utilizzo è un MS non Server (XP,2000).
Il mio problema è che nel momento in cui effettua la commutazione
sull'altra LAN, non riesco ad aprire le porte di acquisizione, pur
settando i winsock secondo il listato inserito nei precedenti messaggi.
Ciao e grazie dell'interessamento.



Penso che sia dovuto al fatto che WinSock sfrutta la scheda di rete
predefinita ...
dovresti cercare qualche api che ti consenta di modificare questo parametro
(sempre che il problema sia quello).
Saluti