Newsgroup: it.comp.lang.visual-basic
Titolo: Winsock e numero delle porte da utilizzare...domanda

Salve,
ho iniziato anche io a trafficare con il winsock :)) sul mio libro ho
trovato qualcosa che possa servirmi per inziare. Ho solo una domanda
da fare. Scegliere il numero delle porte da utilizzare. Da quanto ho
capito, in base a quanto dice il mio libro, per inviare dati tramite
winsock ho bisogno di:
1) mettere in un form il componente :))
2) impostare la proprietà RemotePort --> il numero della porta sul pc
    che riceverà dati = ??
3) impostare la proprietà RemoteHost --> indirizzo ip o host del pc
    che riceve i dati
4) utilizzando il metodo Bind apro una porta locale nel pc (che invia)
    per inviare dati. E' giusto?
5) infine con il metodo SendData mando quello che voglio.
Bene, per ricevere devo fare delle cose analoghe, quindi non posto la
sequenza. Il numero delle porte in base a che si sceglie? Io non ho
idea di che porte posso utilizzare per ricevere (RemotePort), aprire
una porta locale (Bind)...SendData ho visto che non si imposta niente.
Nell' esempio di Fibia, hop visto che lui usa come LocalPort, la porta
1500, mentre il mio libro la porta 1002. Ora, prima di prendere per
buono, una cosa o l' altra, c'è un motivo in cui si sceglie una porta
in generale? C' è un intervallo di porte che posso prendere in
considerazione? Una cosa tipo dal...al...
Aspetto news.
Saluti...

considerazione? Una cosa tipo dal...al...
Allora. Abbiamo un PC client ed uno server, giusto? Il client è quello che chiama, il server è
quello che risponde.
Se il server ha come indirizzo della porta locale (localport) 1234, il client dovrà avere come
remoteport 1234; allo stsso modo se il client ha come remoteport 0, il server deve avere come
localport 0.
Le due carreggiate di un'autostrada devono corrispondere da entrambe le parti, altrimenti succede un
casino.
Inoltre è necessario specificare nella proprietà RemoteHost del client, l'IP o il nome del server,
altrimenti chi chiama?
Poi. Il server si deve mettere in attesa invocando il metodo .Listen
Il client, invece, chiama il metodo Connect : quando il client cerca di connettersi, sul server
viene generato l'evento ConnectionRequest: a qusto punto, se il server accetta la chiamata, devi
richiamare il metodo .Accept requestID, dove requestID è, diciamo così,  l'identificativo della
chiamata del client (winsock1.ConnectionRequest(ByVal requestID As Long) )
Ora i due PC sono connessi e, per scambiarsi dati, devi usare il metodo SendData, il quale genera
sull'altro PC l'evento DataArrival.
Nella guida in linea, comunque, trovi un esempio completo.
Spero di essere stato abbastanza chiaro.
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

considerazione? Una cosa tipo dal...al...
Sicuramente, nessuna sotto il 1024, perche' se mai vorrai scrivere un
client per Unix --o se mai qualcun altro vorra' farlo-- lavorare fino
alla 1023 e' un problema.
Poi:
- 6667 e simili sono per irc
- 5190 e tante altre sono per icq
- 31337 sono per gli psybnc
- 3128, 3129 sono usate da WinProxy, quando presente
- 4040, 4080, 4023 sono usate da Proxy+
- 1080 e' riservata ai server socks
- 1090 e' usata da RealAudio
Potremmo andare avanti fino a domattina.
Di solito, se stai sopra a 10.000 sei sicuro che non hai conflitti.
Naturalmente, stai sotto 64k, cioe' 65535.
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-IV --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD

>considerazione? Una cosa tipo dal...al...
Non c'è una regola generale. Ti consiglio comunque numeri alti (entrambi gli esempi riportano valori
sopra il mogliaio). Basta non usare le porte standard:
21 = FTP
119 = NNTP
110 = POP3
80 = HTTP
ecc. ecc.
Maggiori info, sempre tra le RFC...


 ho iniziato ......................>>>>>>>>>>> etc...

alla 1023 e' un problema.
Perchč?

Spero di essere stato abbastanza chiaro.
Chiaro e preciso, come sempre :)) Ho fatto il mio esempio stupido,
funziona!! (Troooppo bravo!! :)) ) Forse ho un paio di domande da
farti ma...le faccio frà un po, devo prima vedere una cosa.
Saluti!!

 wrote in message 3a5acfa8...@news.enter.it...


Perchè?
Le porte fino alla 1023 compresa sono di competenza dell'utente root o
dei processi da egli lanciati. Come, ad esempio, i daemons --scusate,
ma mi fa senso usare il termine demoni...-- lanciati all'avvio.
Quindi, per mettere in esecuzione un processo che legge o scrive su
una porta fino alla 1023 compresa bisogna essere root.


farti ma...le faccio frà un po, devo prima vedere una cosa.
Bene. Sono contento che funzioni... quando è il momento per quelle domande, spara pure.


Come mai?
Come ho detto in un post di qualche giorno fa, usando un array di controlli si risolve il problema.
Se invece persiste, posta il codice...
