Torna al Thread
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports Microsoft.VisualBasic
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Control.CheckForIllegalCrossThreadCalls = False
Dim Th As New Threading.Thread(AddressOf Ascolta)
Th.SetApartmentState(Threading.ApartmentState.STA)
Th.Start()
End Sub
Sub Ascolta()
Dim server As TcpListener
server = Nothing
Try
'Imposta la porta
Dim port As Int32 = 2000
Dim localAddr As IPAddress = IPAddress.Parse("000.000.00.0")
server = New TcpListener(localAddr, port)
''Avvia l'apertura della porta "2000"
server.Start()
' Buffer per la lettura dei dati
Dim bytes(1024) As Byte
Dim data As String = Nothing
' Avvio il ciclo per la connessione
While True
TextBox1.Text += "Attendo la connessione..." & vbCrLf
'Accetto la connessione
Dim client As TcpClient = server.AcceptTcpClient()
TextBox1.Text += "Connesso!" & vbCrLf
data = Nothing
'Oggetto canale per la ricezione e l'invio
Dim stream As NetworkStream = client.GetStream()
Dim i As Int32
'Ricevo i dati inviati dal client
i = stream.Read(bytes, 0, bytes.Length)
While (i <> 0)
'Converto i dati da bytes a ASCII.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
TextBox1.Text += "Ricevuti: " & data & vbCrLf
'Analisi dei dati inviati dal client
data = data.ToUpper()
Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
'Invio la risposta al client
stream.Write(msg, 0, msg.Length)
TextBox1.Text += "Inviato: " & data & vbCrLf
i = stream.Read(bytes, 0, bytes.Length)
End While
'Chiudo la connessione
client.Close()
End While
Catch ex As SocketException
TextBox1.Text += "SocketException: " & vbCrLf
Finally
server.Stop()
End Try
End Sub
End Class