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 - Connessione automatica
Forum - Visual Basic 6 - Connessione automatica

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
c.ronaldo (Normal User)
Expert


Messaggi: 577
Iscritto: 01/02/2007

Segnala al moderatore
Postato alle 19:49
Sabato, 10/02/2007
Salve a tutti!
Volevo sapere come fare un programma client/server
Che :
Normalmente si apre il server e lo si mette in ascolto...Solo che poi il client x potersi collegare deve scrivere IP e magri anche la porta...
Come posso fare dche se il server è in ascolto
appena apro il client avviene una connessione tra i 2 ?
PS : Ho trovato alcuni sorgenti ma nn ci ho capito un  gran chè....
GRAZIE A TUTTI :k:

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 11:57
Domenica, 11/02/2007
per connettersi al client digitando l'ip penso che sia una demenzialità usi le winsocks una del server la metti in ".listen" e con l'altra ti connetti con ".connect".
per variare l'ip non c'è alcun problema basta che la connesione dai il ".remotehost" uguale a un text1.text
per fare variare la porta è molto più difficile ma non impossibile.
devi
1) o aprire turre le porte possibili con 1 winsock per porta che ascolti(fortemente sconsigliato.)
2)o fare controllare regolarmente al server un sito internet nel quale il programma client uploderà il numero della porta e aprire la porta equivalente.(consiglio questo)
3)spedire una mail col client e farla scaricare dal server contenente la porta.(difficile ma il migliore)
La stada che ti consiglio è la seconda. non è impossibile da fare e è molto più pratico del primo

PM Quote
Avatar
Hacker (Member)
Guru


Messaggi: 1014
Iscritto: 06/06/2006

Segnala al moderatore
Postato alle 12:01
Domenica, 11/02/2007
ti ho fatto 2 semplici sorgenti sul client/server:

SERVER:

Dim RecivedData

Private Sub Form_Load()

With Winsock

.Close
.Protocol = sckTCPProtocol
.LocalPort = 90
.Listen

End With

End Sub

Private Sub Winsock_ConnectionRequest(ByVal requestID As Long)

With Winsock

.Close
.Accept requestID

End With

End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)

Winsock.GetData RecivedData, vbString
txtDatiRicevuti.Text = RecivedData

End Sub

Private Sub Winsock_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

MsgBox Err.Description & Space(1) & Err.Number & Space(1) & Err.Source

End Sub


CLIENT:

Private Sub cmdConnect_Click()

With Winsock

.Close
.Protocol = sckTCPProtocol
.RemoteHost = txtIP.Text
.RemotePort = txtPort.Text
.Connect

End With

End Sub

Private Sub Form_Load()

cmdConnect_Click

End Sub

Private Sub tmr_Timer()

If Winsock.State = 7 Then
  
   MsgBox "Connesso"
   Winsock.SendData "Ok,ora mi disconnetto!"
   tmr.Enabled = False
  
End If
      
End Sub

Private Sub Winsock_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

MsgBox Err.Description & Space(1) & Err.Number & Space(1) & Err.Source

End Sub

Private Sub Winsock_SendComplete()
MsgBox "Inviati i dati!"
End Sub


Dimmi cosa non hai capito che tento di illustrarti il funzionamento;)

PM Quote
Avatar
Hacker (Member)
Guru


Messaggi: 1014
Iscritto: 06/06/2006

Segnala al moderatore
Postato alle 12:22
Domenica, 11/02/2007
@Paperoga:

per cambiare porta basta inviare al server la stringa della nuova porta e riaprire la connessione del client con la nuova porta...

es.

Client:

Winsock.SendData "NewPort:" & txtNewPort.text



Server:

If InStr(1, DatiRicevuti, "NewPort:", vbTextCompare) <> 0 Then

   winsock.close
   winsock.localport=Mid(DatiRicevuti, 9)
   winsock.listen

end if


Poi il client riapre la connessione successivamente con la nuova porta:

Client:

winsock.close
winsock.remoteport=txtNewPort.text
winsock.remotehost=txtIP.text
winsock.connect

Tutto qua...

PM Quote
Avatar
c.ronaldo (Normal User)
Expert


Messaggi: 577
Iscritto: 01/02/2007

Segnala al moderatore
Postato alle 12:51
Domenica, 11/02/2007
Grazie mille hacker....
Solo che io volevo che nn si dovesse digitare ip per connettersi ma basta solo aprire...cmq GRAZIE :k:

@ paperoga
Nn ho capito come devo fare x la seconda strada (quella che tu mi hai consigliato)
GRAZIE A TUTTI :k:

PM Quote
Avatar
Hacker (Member)
Guru


Messaggi: 1014
Iscritto: 06/06/2006

Segnala al moderatore
Postato alle 12:56
Domenica, 11/02/2007
se intendi il cambio della porta c'è un metodo migliore(quello che ti ho scritto al post precedente)senza siti internet...
se non conosci qualche funzione,o non capisci qualche cosa puoi chiedere;)

PM Quote
Avatar
c.ronaldo (Normal User)
Expert


Messaggi: 577
Iscritto: 01/02/2007

Segnala al moderatore
Postato alle 13:04
Domenica, 11/02/2007
Veramente io voglio chequando il server è in ascolto,per connettere il client nn si inserisca l'ip ma avvenga direttamente (Ho visto molti sorgenti del genere ma nn cio capito un gran chè)
Grazie :k:

PM Quote
Avatar
Hacker (Member)
Guru


Messaggi: 1014
Iscritto: 06/06/2006

Segnala al moderatore
Postato alle 13:13
Domenica, 11/02/2007
è una cosa impossibile...si deve mettere per forza l'indirizzo IP o l'indirizzo del sito.

Ultima modifica effettuata da Hacker il 11/02/2007 alle 13:13
PM Quote
Avatar
c.ronaldo (Normal User)
Expert


Messaggi: 577
Iscritto: 01/02/2007

Segnala al moderatore
Postato alle 13:17
Domenica, 11/02/2007
Mo vedo di trovare il sorgente e te lo dò...
cmq GRAZIE :k:

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo