Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Chat in VB6 con WinSock in rete non locale.
Forum - Visual Basic 6 - Chat in VB6 con WinSock in rete non locale.

Avatar
mikesoft220594 (Normal User)
Newbie


Messaggi: 11
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 15:50
Martedì, 29/06/2010
Ciao ragazzi, sono nuovo del forum, per cui perdonatemi se ho aperto un post già esistente. :-)
Da qualche giorno ho iniziato la programmazione di una semplice Chat in VB6 con la famosissima OCX "WinSock".
La programmazione è adata "a buon fine" e nella mia rete locale funziona che una bellezza!
Il mio problema è che questa Chat servirebbe per mettere in contatto me ed un mio amico, e quindi devo avere la possibilità
di connettermi con il WinSock ad una rete non locale (mi pare si dica ExtraNet).
Come posso fare?
Io, in realtà, una soluzione forse me la sarei già trovata però non so quanto possa esser giusta e per rispiarmiare
moccoli e bestiemmie varie ho preferito chiedere! XD
Io avevo pensato di:
-Dare il SERVER al mio amico
e di dare le seguenti impostazioni al WinSock(SERVER):
-RemotePort -> una porta a caso (ad esempio la 10)

poi, il CLIENT me lo sarei tenuto io ed avrei connesso il WinSock all'indirizzo IP Publico del mio amico (WinSock1.Connect "xxx.xxx.xxx.xxx" , "10")

però non riesco a capire come riuscira poi il WinSock a capire che l'indirizzo IP che gli ho messo è un indirizzo IP Pubblico o locale...
Infatti, secondo me, il WinSock mi darà errore perche cercherà quell'indirizzo IP all'interno della mia rete locale...


Grazie:k:

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 16:06
Martedì, 29/06/2010
Testo quotato

Postato originariamente da mikesoft220594:

Ciao ragazzi, sono nuovo del forum, per cui perdonatemi se ho aperto un post già esistente. :-)
Da qualche giorno ho iniziato la programmazione di una semplice Chat in VB6 con la famosissima OCX "WinSock".
La programmazione è adata "a buon fine" e nella mia rete locale funziona che una bellezza!
Il mio problema è che questa Chat servirebbe per mettere in contatto me ed un mio amico, e quindi devo avere la possibilità
di connettermi con il WinSock ad una rete non locale (mi pare si dica ExtraNet).
Come posso fare?
Io, in realtà, una soluzione forse me la sarei già trovata però non so quanto possa esser giusta e per rispiarmiare
moccoli e bestiemmie varie ho preferito chiedere! XD
Io avevo pensato di:
-Dare il SERVER al mio amico
e di dare le seguenti impostazioni al WinSock(SERVER):
-RemotePort -> una porta a caso (ad esempio la 10)

poi, il CLIENT me lo sarei tenuto io ed avrei connesso il WinSock all'indirizzo IP Publico del mio amico (WinSock1.Connect "xxx.xxx.xxx.xxx" , "10")

però non riesco a capire come riuscira poi il WinSock a capire che l'indirizzo IP che gli ho messo è un indirizzo IP Pubblico o locale...
Infatti, secondo me, il WinSock mi darà errore perche cercherà quell'indirizzo IP all'interno della mia rete locale...


Grazie:k:



Qualche appunto da fare:

Non è compito del winsock instradare i pacchetti IP verso il giusto network, è un processo complesso in cui entrano in gioco diversi fattori, tra cui le impostazioni di rete e il gateway di rete. Ad ogni modo non sono problemi che un programmatore deve affrontare, "il winsock" diciamo che sa esattamente raggiungere un IP, sempre che esso sia alive, ovunque sia.
Considera che un'IP pubblico, per delle regole imposte a priori, non può cadere nel range degli ip privati, quindi basta un semplice mask dei bit dell'address per capire se è un ip "interno" o "esterno". Anche qui però ci sarebbe un discorso troppo ampio da affrontare, accontentati di questa spiegazione, per ora :)

La porta da utilizzare è sicuramente > 1024 in quanto le prime 1024 sono reserved e potresti "cozzare" con qualche altro servizio. Personalmente consiglio porte sempre tra i 40k e 65k.

quando avevo 14 anni ho scritto diversi articoli su come realizzare una chat in VB6 usando il winsock:

http://www.visual-basic.it/articoli/ldlChat.htm
http://www.visual-basic.it/articoli/ldlChat2.htm
http://www.visual-basic.it/articoli/ldlChat3.htm

dagli un'occhiata, potrai trovare spunti molto interessanti :)

ultima cosa: perchè iniziare a programmare in vb6 ORA? nel 2010? Ti consiglio di lasciar perdere tutto e di iniziare a studiare VB.NET, sarà molto più gratificante sul lungo periodo ora che vb6 è stato completamente DEPRECATO dalla stessa microsoft.

Ultima modifica effettuata da HeDo il 29/06/2010 alle 16:08
PM Quote
Avatar
mikesoft220594 (Normal User)
Newbie


Messaggi: 11
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 16:24
Martedì, 29/06/2010
Ti ringrazio!:k: finalmente sono riuscito ad eliminare i miei dubbi!
Comunque non è che devo iniziare ora a programmare anzi, ormai programmo già da 5-6 anni :-) e ne conosco un bel po di linguaggi di programmazione (C, C++, Assembly(anche se moolto poco), Java, ecc...) però il VB6 è sempre stato il mio cavallo da battaglia e praticamente lo conosco meglio delle mie mani. :rotfl: quindi per creare dei progetti così "al volo" lo preferico perche non inciampo quasi mai in errori che mi constringono a fare ricerche in web su come risolverli(tranne questo che proprio per me era una cosa insormontabile! infatti io di rete c'ho sempre capito poco...:rotfl:).
Comunque ti ringrazio ancora!
Molto sintetico ma essenziale!!:k:

PM Quote
Avatar
mikesoft220594 (Normal User)
Newbie


Messaggi: 11
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 16:31
Martedì, 29/06/2010
A, già che ci siamo :) , volevo chiedere anche se le porte che utilizzerò (quindi da 40000 a 50000 Grazie HeDo per la dritta! ;) ) dovranno essere precedentemente aperte all'interno del router/modem.
Grazie

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 17:01
Martedì, 29/06/2010
se cerchi su google troverai tanti esempi di chat fatte con il winsock l'unico problema è che devi aprire le porte del router di chi ha il server (port forwading)

PM Quote
Avatar
mikesoft220594 (Normal User)
Newbie


Messaggi: 11
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 17:19
Martedì, 29/06/2010
Ok, Grazie! :)
Ma quindi MSN Messanger come fa senza dover aprire alcune porte? Si affida ad un Server?!
Comunque grazie di tutto! Ora poi, quando avrò possibilità di recarmi dal mio amico che, sfortunatamente non ci capisce ninete di computer :d , proverò e poi vi farò sapere!
Grazie a tutti!:k:

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 17:42
Martedì, 29/06/2010
Testo quotato

Postato originariamente da mikesoft220594:
Ok, Grazie! :)
Ma quindi MSN Messanger come fa senza dover aprire alcune porte? Si affida ad un Server?!
Comunque grazie di tutto! Ora poi, quando avrò possibilità di recarmi dal mio amico che, sfortunatamente non ci capisce ninete di computer :d , proverò e poi vi farò sapere!
Grazie a tutti!:k:



si, si affida ad un server. Inoltre il login sul network msn è molto complesso, però possiamo definirlo in buona approssimazione come: "prendi un numerino, aspetta il tuo turno e quando tocca a te vai allo sportello. Ora sei connesso"

PM Quote
Avatar
mikesoft220594 (Normal User)
Newbie


Messaggi: 11
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 21:04
Martedì, 29/06/2010
Ok, Ringrazio tutti per le risposte e, Complimenti per il Sito ;) veramente ben strutturato e completo! Grazie:k:

PM Quote