raf_lele (Normal User)
Newbie
Messaggi: 20
Iscritto: 05/03/2009
|
Salve a tutti ho creato una mini applicazione client - server per inziare ad imparare bene i socket. Mi connetto al server,invio la prima stringa e fin qui tutto bene,però per far si che il server la legga devo chiudere streamwriter e quindi non posso più inviare stringhe al server come posso risolvere?
Questa è la parte del client dove ho problemi
Codice sorgente - presumibilmente VB.NET |
Try Dim networkStream As NetworkStream = client.GetStream() ' Dim streamwriter As StreamWriter Using streamwriter As New StreamWriter(networkStream) streamwriter.WriteLine(TextBox3.Text) ' here type Order through Textbox = Order.Text TextBox3.Text = "" streamwriter.Close() networkStream.Close() End Using Catch ex As Exception MsgBox("Errore " + ex.Message, MsgBoxStyle.OkOnly) End Try
|
E questa è la parte di server che legge quello che invio
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load server.Start() Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick mysocket = server.AcceptSocket networkstream = New NetworkStream(mysocket) streamreader = New StreamReader(networkstream) Dim leggo As String = streamreader.ReadLine TextBox1.Text += leggo & vbCrLf End Sub
|
|
|
raf_lele (Normal User)
Newbie
Messaggi: 20
Iscritto: 05/03/2009
|
help
|
|
GoLDBeRG (Ex-Member)
Expert
Messaggi: 331
Iscritto: 19/12/2005
|
nono è tutto sbagliato... guarda bene il codice su msdn... e usalo a tuo piacimento...
|
|
LittleHacker (Member)
Guru
Messaggi: 1033
Iscritto: 28/04/2009
|
Ma scusa guardati un progrannino di chat client-server in vb.net che è postato su questo sito e si chiama SessaChat è da li che ho imparato l'uso delle socket. E' molto semplice
|
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da raf_lele:
Salve a tutti ho creato una mini applicazione client - server per inziare ad imparare bene i socket. Mi connetto al server,invio la prima stringa e fin qui tutto bene,però per far si che il server la legga devo chiudere streamwriter e quindi non posso più inviare stringhe al server come posso risolvere?
Questa è la parte del client dove ho problemi
Codice sorgente - presumibilmente VB.NET |
Try Dim networkStream As NetworkStream = client.GetStream() ' Dim streamwriter As StreamWriter Using streamwriter As New StreamWriter(networkStream) streamwriter.WriteLine(TextBox3.Text) ' here type Order through Textbox = Order.Text TextBox3.Text = "" streamwriter.Close() networkStream.Close() End Using Catch ex As Exception MsgBox("Errore " + ex.Message, MsgBoxStyle.OkOnly) End Try
|
E questa è la parte di server che legge quello che invio
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load server.Start() Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick mysocket = server.AcceptSocket networkstream = New NetworkStream(mysocket) streamreader = New StreamReader(networkstream) Dim leggo As String = streamreader.ReadLine TextBox1.Text += leggo & vbCrLf End Sub
|
|
Apparte qualche errorino nel Server, non capisco la tua domanda! Tu vuoi inviare piu stringhe al server? Se devi fare questo, semplicemente dichiara la tua StreamWriter in modo globale e non chiuderla! o forse intendi creare una chat MultiThread?
P.S. Correggo gli errori che ho visto:
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load server.Start() dim mysocket = server.AcceptSocket dim ns as networkstream = New NetworkStream(mysocket) dim sr as streamreader = New StreamReader(ns) Dim leggo As String = sr.ReadLine TextBox1.Text += leggo & vbCrLf End Sub
|
Così a me funziona! Solo per il primo messaggio ovviamente |
|
GoLDBeRG (Ex-Member)
Expert
Messaggi: 331
Iscritto: 19/12/2005
|
lascia stare la chat multithread XD io avete visto il sangue che ci sto buttando... ma vabhe io devo reggere 2000 utenti lui fino a 100 gia è tanto no?
|
|
()
Newbie
Messaggi:
Iscritto:
|
Si e poi come ha già detto, questa applicazione gli serve solo per imparare ad usare i Socket, mica per creare una nuova super chat (fortunatamente) !
|
|
raf_lele (Normal User)
Newbie
Messaggi: 20
Iscritto: 05/03/2009
|
Postato originariamente da riseofapocalypse:
Postato originariamente da raf_lele:
Salve a tutti ho creato una mini applicazione client - server per inziare ad imparare bene i socket. Mi connetto al server,invio la prima stringa e fin qui tutto bene,però per far si che il server la legga devo chiudere streamwriter e quindi non posso più inviare stringhe al server come posso risolvere?
Questa è la parte del client dove ho problemi
Codice sorgente - presumibilmente VB.NET |
Try Dim networkStream As NetworkStream = client.GetStream() ' Dim streamwriter As StreamWriter Using streamwriter As New StreamWriter(networkStream) streamwriter.WriteLine(TextBox3.Text) ' here type Order through Textbox = Order.Text TextBox3.Text = "" streamwriter.Close() networkStream.Close() End Using Catch ex As Exception MsgBox("Errore " + ex.Message, MsgBoxStyle.OkOnly) End Try
|
E questa è la parte di server che legge quello che invio
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load server.Start() Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick mysocket = server.AcceptSocket networkstream = New NetworkStream(mysocket) streamreader = New StreamReader(networkstream) Dim leggo As String = streamreader.ReadLine TextBox1.Text += leggo & vbCrLf End Sub
|
|
Apparte qualche errorino nel Server, non capisco la tua domanda! Tu vuoi inviare piu stringhe al server? Se devi fare questo, semplicemente dichiara la tua StreamWriter in modo globale e non chiuderla! o forse intendi creare una chat MultiThread?
P.S. Correggo gli errori che ho visto:
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load server.Start() dim mysocket = server.AcceptSocket dim ns as networkstream = New NetworkStream(mysocket) dim sr as streamreader = New StreamReader(ns) Dim leggo As String = sr.ReadLine TextBox1.Text += leggo & vbCrLf End Sub
|
Così a me funziona! Solo per il primo messaggio ovviamente |
Anche come ho fatto io funziona ma ovviamente solo per il primo messaggio.
Quindi dovrei modificare tutto per far si che al server possa inviare più messaggi?
PS: non mi interessa creare una chat è giusto per capire il funzionamento grazie a tutti |
|
LittleHacker (Member)
Guru
Messaggi: 1033
Iscritto: 28/04/2009
|
Allora per utilizzare le socket in vb.net senza utilizzare l'ocx del vb6 devi avere dei timer che ti controllano se ricevi dei messaggi.
Controlla il progetto su questo sito che si chiama SessaChat è una chat ma ti da le basi per le socket in vb.net sennò richiedimelo e ti farò un programma di esempio come hai chiesto te.
|
|