Torna al Thread

Imports System.Net.Sockets Imports System.Text.UTF8Encoding Imports System.IO Imports System.Windows.Forms.Timer Imports System.Text Public Class FrmRecorder Dim Client As New TcpClient 'Dichiaro nuovo Client. Dim Stream As NetworkStream 'Dichiaro nuovo Stream. Private Sub FrmRecorder_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub BtnConnetti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConnetti.Click Dim indirizzo As String = TbxIp.Text 'Metto l'ip dentro alla TbxIP. Dim porta As String = TbxPorta.Text 'Metto la porta TCP dentra alla TbxPorta. Client = New TcpClient 'Client è un nuovo TcpClient. Try Application.DoEvents() Client.Connect(indirizzo, porta) 'Connetto il client all'indirizzo ip del Server attraverso la porta tcp. Catch ex As Exception 'In caso di errore MsgBox("Connessione fallita!", MsgBoxStyle.Critical, "Errore") End Try If Client.Connected Then 'Se il Client è connesso al Server allora.. MsgBox("Connessione riuscita!", MsgBoxStyle.Information, "Info") Stream = Client.GetStream() 'Stream è l’invio/ricezione (flusso) di dati con il Server al quale Client è connesso. BtnConnetti.Enabled = False 'Disattiva il tasto Connetti. End If TimerLeggiDati.Start() 'Avvio il Timer1 per leggere i dati. End Sub Private Sub Leggidati() If Not Client.Connected Then Throw New ApplicationException("Server Disconnesso") End If If Stream.CanRead Then Dim Buffer(4095) As Byte '-- 4k Stream = Client.GetStream() 'Metti in comunicazione il Client con il Server. Dim ReturnData As String = String.Empty Dim BytesRead As Integer = 0 Do BytesRead = Stream.Read(Buffer, 0, Buffer.Length) If BytesRead > 0 Then End If ReturnData = Encoding.GetEncoding(1252).GetString(Buffer, 0, BytesRead) IO.File.AppendAllText("C:\recorder.txt", ReturnData) Loop While Stream.DataAvailable 'Ripeto il loop affinchè i dati sono accessibili. End If End Sub Private Sub BtnAnnulla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAnnulla.Click TbxIp.Text = "" TbxPorta.Text = "" Me.Close() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerLeggiDati.Tick If Client.Available > 0 Then 'Se i dati che ricevi dal server al quale è connesso il Client sono disponibili e sono maggiori di 0. Dim Buffer(Client.Available - 1) As Byte 'Dichiaro un array con dimensioni uguali al numero di dati ricevuti dal Client meno 1. Dim ReturnData As String = String.Empty Dim BytesRead As Integer = 0 Stream = Client.GetStream() 'Metti in comunicazione il Client con il Server. Do BytesRead = Stream.Read(Buffer, 0, Buffer.Length) 'Leggo il flusso di dati. If BytesRead > 0 Then End If ReturnData = Encoding.GetEncoding(1252).GetString(Buffer, 0, BytesRead) 'Decodifica ReturnData in stringa UTF8 e mettila in BytesRead. IO.File.AppendAllText("C:\recorder.txt", ReturnData) Loop While Stream.DataAvailable 'Ripeto il loop affinchè i dati sono accessibili End If End Sub End Class
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5