GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
ciao a tutti!
sto cercando di realizzare un programma che funziona tipo messenger. Cioè che in ciascuno di due computer c'è un programma, sempre lo stesso, in cui c'è un textbox con un pulsante.
io vorrei che quando viene premuto il pulsante il messaggio inserito nel texbox che ad esempio può essere prova, venga poi visualizzato nel textbox della copia del programma solo che in un altro computer.
mi potete aiutare
|
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
Per fare un programma del genere devi usare l'oggetto winsock.
Aggiungi questo oggetto alle due form dei dui progetti. Dopo nel codice del server scrivi:
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_Load() Winsock1.localport=1001 Winsock1.listen End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) Winsock1.Close Winsock1.accept requestID End Sub
|
Nel client invece in un button
Codice sorgente - presumibilmente VB.NET |
Private Sub Command1_Click() Winsock1.localport=1001 Winsock1.remoteip ="" qui inserisci l'ip remoto Winsock1.connect End Sub
|
Questo codice ti serve per connettere due applicazioni tra di loro.
Il server è in listen e aspetta la connessione da parte del client.
Per inviare i dati usa la funzione
Codice sorgente - presumibilmente Plain Text |
Winsock1.SendData stringadainviare
|
Dove stringadainviare sarebbe per esempio il contenuto della tua textbox quindi
Codice sorgente - presumibilmente Plain Text |
Winsock1.SendData text1.text
|
dove text1 è la tua text box
Poi nel server gestisci l'evento fata arrival
Codice sorgente - presumibilmente VB.NET |
Private Sub conn_DataArrival(ByVal bytesTotal As Long) dim data as string Winsock1.getdata data End Sub
|
la variabile data ora conterrà ciò che hai inviato tu dal client.
Ah se quando connetti il client non c'è un programma in listen andra in errore quindi gestisci nel client l'evento errore di winsock.
Spero di essere stato chiaro.
Ciao. Ultima modifica effettuata da LuigiBiasi il 31/08/2007 alle 19:50 |
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
grazie x le info.
Mò provo poi ti dico se mi funziona.
Ciao
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
purtroppo quando compila il programma mi da errore
al pezzo in cui dici(nel command1_click):
Winsock1.remoteip = ""
mi evidenzia remoteip.
qualcuno mi può aiutare???
Ultima modifica effettuata da GrG il 31/08/2007 alle 20:02 |
|
P4p3r0g4 (Member)
Guru
Messaggi: 1319
Iscritto: 29/12/2006
|
..perchè devi mettercelo un indrizzo tra quelle virgolette
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
è quello che ho fatto, ma nn mi funziona.
|
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
ehy scusa ho sbagliato io
quello che devi scrivere è:
Codice sorgente - presumibilmente Plain Text |
Winsock1.RemoteHostIP ="scriviipserver"
|
Scusa pensavo di ricordarmi bene ieri invece ho sbagliato.
Comunque puoi anche scrivere cosi
Codice sorgente - presumibilmente Plain Text |
Winsock1.Connect "ipdeleserver", numeroporta
|
Con questo ultimo codice puo eliminare winsock1.port e winsock1.remoteip puoi scegliere tra questi due modi.
Ciao. |
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
non mi funziona,
mi da ancora errore.
e mi evidenzia il pezzo in cui dici:
Winsock1.Connect "ipdeleserver", numeroporta
io però non ho capito molto bene sul che cosa devo inserire fra le virgolette "ipdeleserver"
me lo puoi spiegare???
e
se utilizzo l'altro sistema è la stessa cosa mi da sempre errore evidenziandomi remotehostip.
Vorrei anche sapere dove devo inserire:
Winsock1.SendData Text1.Text
(anche se già credo di saperlo)
Ultima modifica effettuata da GrG il 02/09/2007 alle 13:04 |
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
Scusa il ritardo,
Per connetterti all'applicazione server devi scrivere questo codice in un bottone oppure dove vuoi...
Codice sorgente - presumibilmente Plain Text |
Winsock1.Connect "ipdelpcserver", numporta
|
Allora ipdelpcserver è l'ip del computer dove si trova la tua apllicazione server.
Mentre numporta è il numero della porta dove i due programmi si comunicano.
Ti faccio un esempio allora come devi scrivere.
Codice sorgente - presumibilmente Plain Text |
Winsock1.Connect "192.168.x.x", 1001
|
Però tu non devi scrivere 192.168.x.x devi mettere semplicemente l'ip del pc dove si trova l'altra applicazione, mentre 1001 è la porta, tu puoi lasciare questa 1001.
Invece Winsock1.SendData data lo devi mettere in un bottone e data deve contenere il valore della textbox dove tu metti il messaggio da inviare.
Per esempio se la textbox dove scrivi il messaggio si chiama text1 e il bottone Invia invia all'altra applicazione il messaggio:
Codice sorgente - presumibilmente VB.NET |
Private Sub Invia_Click() 'nel bottone invia Winsock1:SendData text1.text End Sub
|
Nell'altra applicazione nell'evento DataArrival
scrivi:
Winsock1.GetData data
data è una variabile stringa.
I dati che ti arrivano li gestisci nell'evento DataArrival del winsock.
Non so se sono stato chiaro. Spero di si.
Ultima modifica effettuata da LuigiBiasi il 05/09/2007 alle 12:19 |
|