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
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5