Posto il codice che utilizzo per connettere due computer con TCPListner e TCPClient, cercando di rendere questo thread più utile per tutti
Lato Server:
1.Genera un form
2.Inserisci un Button (.Text=Ascolta)
3.Inserisci una Textbox
Lato Client:codice: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
1.Genera un form
2.Inserisci un Button (.Text=Connetti)
3.Inserisci una Textbox
codice:Imports System Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Text Imports Microsoft.VisualBasic Public Class Form1 Sub Connect(ByVal server As [String], ByVal message As [String]) Try 'Creazione dell'oggetto client Dim port As Int32 = 2000 Dim client As New Sockets.TcpClient(server, port) 'Converto il messaggio passato come ASCII e lo memorizzo in un array Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message) 'Avvio un canale per inviare e ricevere Dim stream As NetworkStream = client.GetStream() 'Invio un messaggio al server connesso stream.Write(data, 0, data.Length) TextBox1.Text += "Inviato: " & message & vbCrLf 'ricevo la risposta del server e la memorizzo nel buffer data = New [Byte](256) {} Dim responseData As [String] = [String].Empty 'Leggo la risposta del server tcp Dim bytes As Int32 = stream.Read(data, 0, data.Length) responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes) TextBox1.Text += "Ricevuto: " & responseData & vbCrLf 'Chiudo il canale e la connessione tcp stream.Close() client.Close() Catch ex As ArgumentNullException TextBox1.Text += "ArgumentNullException: " & ex.Message & vbCrLf Catch ex As Net.Sockets.SocketException TextBox1.Text += "SocketException: " & ex.Message & vbCrLf End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Connect("000.000.00.0", "Ciao") End Sub
In Internet si trova una marea di materiale circa l'utilizzo di questi oggetti, se avete consigli sul codice scritto (ovviamente le funzionalità così sono molto ridotte, infatti non è possibile nemmeno scegliere l'Ip del server o la porta ma è molto semplice modificare questo codice per implementarlo) dite pure.
Per quanto riguarda la connessione FTP, ho scritto che non è molto performante
Citazione:
Per quanto riguarda il trasferimento di file FTP non è poi così performanteperchè evidentemente sbaglio qualcosa.Insomma ... veramente, per i file, e' uno dei protocolli che rendono di piu' ...
Ma per fare l'upload di un file mdb di modeste dimensioni (Basti pensare ad una sola tabella con 10 colonne (contatore, numeric e string) e solo qualche riga scritta potrebbe passare anche qualche minuto.
Stasera penso di essere alla frutta, domani vi posto il codice.
![]()

Rispondi quotando