Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Client - server [VB.NET]
Forum - C# / VB.NET - Client - server [VB.NET]

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 19:56
Giovedì, 25/06/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

  1. Try
  2.             Dim networkStream As NetworkStream = client.GetStream()
  3.             ' Dim streamwriter As StreamWriter
  4.             Using streamwriter As New StreamWriter(networkStream)
  5.                 streamwriter.WriteLine(TextBox3.Text) ' here type Order through Textbox = Order.Text
  6.                 TextBox3.Text = ""
  7.  
  8.                 streamwriter.Close()
  9.                 networkStream.Close()
  10.             End Using
  11.  
  12.         Catch ex As Exception
  13.             MsgBox("Errore " + ex.Message, MsgBoxStyle.OkOnly)
  14.         End Try



E questa è la parte di server che legge quello che invio
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         server.Start()
  3.         Timer1.Start()
  4.     End Sub
  5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  6.     mysocket = server.AcceptSocket
  7.             networkstream = New NetworkStream(mysocket)
  8.             streamreader = New StreamReader(networkstream)
  9.             Dim leggo As String = streamreader.ReadLine
  10.             TextBox1.Text += leggo & vbCrLf
  11. End Sub


PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 14:18
Venerdì, 26/06/2009
help:(

PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 15:22
Venerdì, 26/06/2009
nono è tutto sbagliato... guarda bene il codice su msdn... e usalo a tuo piacimento...

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 16:03
Venerdì, 26/06/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 :rotfl:


Android User :)

MudStorm OS Source GitHub: https://github.com/Piso94/MudStorm-OS
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:12
Venerdì, 26/06/2009
Testo quotato

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

  1. Try
  2.             Dim networkStream As NetworkStream = client.GetStream()
  3.             ' Dim streamwriter As StreamWriter
  4.             Using streamwriter As New StreamWriter(networkStream)
  5.                 streamwriter.WriteLine(TextBox3.Text) ' here type Order through Textbox = Order.Text
  6.                 TextBox3.Text = ""
  7.  
  8.                 streamwriter.Close()
  9.                 networkStream.Close()
  10.             End Using
  11.  
  12.         Catch ex As Exception
  13.             MsgBox("Errore " + ex.Message, MsgBoxStyle.OkOnly)
  14.         End Try



E questa è la parte di server che legge quello che invio
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         server.Start()
  3.         Timer1.Start()
  4.     End Sub
  5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  6.     mysocket = server.AcceptSocket
  7.             networkstream = New NetworkStream(mysocket)
  8.             streamreader = New StreamReader(networkstream)
  9.             Dim leggo As String = streamreader.ReadLine
  10.             TextBox1.Text += leggo & vbCrLf
  11. 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! :k: o forse intendi creare una chat MultiThread?
P.S. Correggo gli errori che ho visto:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         server.Start()
  3.         dim mysocket = server.AcceptSocket
  4.         dim ns as networkstream = New NetworkStream(mysocket)
  5.         dim sr as streamreader = New StreamReader(ns)
  6.         Dim leggo As String = sr.ReadLine
  7.         TextBox1.Text += leggo & vbCrLf
  8. End Sub


Così a me funziona! Solo per il primo messaggio ovviamente :)

PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 18:19
Venerdì, 26/06/2009
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?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:17
Venerdì, 26/06/2009
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) ! :D

PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 11:28
Sabato, 27/06/2009
Testo quotato

Postato originariamente da riseofapocalypse:

Testo quotato

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

  1. Try
  2.             Dim networkStream As NetworkStream = client.GetStream()
  3.             ' Dim streamwriter As StreamWriter
  4.             Using streamwriter As New StreamWriter(networkStream)
  5.                 streamwriter.WriteLine(TextBox3.Text) ' here type Order through Textbox = Order.Text
  6.                 TextBox3.Text = ""
  7.  
  8.                 streamwriter.Close()
  9.                 networkStream.Close()
  10.             End Using
  11.  
  12.         Catch ex As Exception
  13.             MsgBox("Errore " + ex.Message, MsgBoxStyle.OkOnly)
  14.         End Try



E questa è la parte di server che legge quello che invio
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         server.Start()
  3.         Timer1.Start()
  4.     End Sub
  5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  6.     mysocket = server.AcceptSocket
  7.             networkstream = New NetworkStream(mysocket)
  8.             streamreader = New StreamReader(networkstream)
  9.             Dim leggo As String = streamreader.ReadLine
  10.             TextBox1.Text += leggo & vbCrLf
  11. 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! :k: o forse intendi creare una chat MultiThread?
P.S. Correggo gli errori che ho visto:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         server.Start()
  3.         dim mysocket = server.AcceptSocket
  4.         dim ns as networkstream = New NetworkStream(mysocket)
  5.         dim sr as streamreader = New StreamReader(ns)
  6.         Dim leggo As String = sr.ReadLine
  7.         TextBox1.Text += leggo & vbCrLf
  8. 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

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 11:49
Sabato, 27/06/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.:k:


Android User :)

MudStorm OS Source GitHub: https://github.com/Piso94/MudStorm-OS
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo