Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Trasferimento file in LAN

    Ho creato una connessione client-server in LAN. Vorrei creare un trasferimento file reciproco (server invia a client e client invia a server). Il trasferimento deve essere semplice:

    1- con un openfiledialog si sceglie il file
    2- si attende conferma dall'altro PC
    3- invia il file in un percorso prestabilito (esempio: desktop)

    Naturalmente so l'IP dell'altro PC e ho aperto (anche se non era necessario) una porta del router per velocizzare il tutto... ecco il codice usato per la creazione del programma:

    CLIENT
    codice:
    Imports System.Net.Sockets
    Imports System.Text.UTF8Encoding
    
    Public Class Form1
    
        Dim ascolta As TcpListener
        Dim cliente As TcpClient
        Dim flusso As NetworkStream
    
        Dim x As Integer
    
        Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            Try
                Dim temporaneo() As Byte = UTF8.GetBytes("chiusaconnessione123454321")
                flusso.Write(temporaneo, 0, temporaneo.Length)
            Catch ex As Exception
                End
            End Try
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ascolta = New TcpListener(8888)
            ascolta.Start()
            Timer2.Start()
        End Sub
    
        Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
            If ascolta.Pending() Then
                Timer2.Stop()
                cliente = ascolta.AcceptTcpClient
                ascolta.Stop()
                flusso = cliente.GetStream()
                Timer1.Start()
                Label1.Text = "NICCO è connesso alla chat."
                My.Computer.Audio.Play(My.Resources.Click, AudioPlayMode.Background)
                Button1.Enabled = True
            End If
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If cliente.Available > 0 Then
                Dim temporaneo(cliente.Available - 1) As Byte
                flusso.Read(temporaneo, 0, temporaneo.Length)
                Dim testo As String = UTF8.GetString(temporaneo)
                If testo = "chiusaconnessione123454321" Then
                    MsgBox("NICCO si è disconnesso dalla chat.", MsgBoxStyle.Information, "Attenzione")
                    ascolta.Stop()
                    ascolta = New TcpListener(8888)
                    ascolta.Start()
                    Timer2.Start()
                    Label1.Text = "In attesa che NICCO si connetta..."
                    Button1.Enabled = False
                Else
                    RichTextBox1.AppendText(vbCrLf & "-  NICCO: " & testo)
                    If Me.TopMost = False Then
                        My.Computer.Audio.Play(My.Resources.Tick, AudioPlayMode.Background)
                    End If
                End If
            End If
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If TextBox1.Text = "" Or TextBox1.Text = " " Or TextBox1.Text = "  " Then
                pausa.Start()
            Else
                invia()
            End If
        End Sub
        Private Sub invia()
            pausa.Start()
            Button1.Enabled = False
            Dim temporaneo() As Byte = UTF8.GetBytes(TextBox1.Text)
            flusso.Write(temporaneo, 0, temporaneo.Length)
            RichTextBox1.AppendText(vbCrLf & "-  LOLLO: " & TextBox1.Text)
            If Me.TopMost = False Then
                My.Computer.Audio.Play(My.Resources.Tick, AudioPlayMode.Background)
            End If
            TextBox1.Text = ""
        End Sub
    
        Private Sub pausa_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pausa.Tick
            x = x + 1
            If x = 1 Then
                pausa.Stop()
                Button1.Enabled = True
                x = 0
            End If
        End Sub
    
        Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
            If e.KeyCode = Keys.Enter Then
                If Button1.Enabled = True Then
                    If TextBox1.Text = "" Or TextBox1.Text = " " Or TextBox1.Text = "  " Then
    
                    Else
                        invia()
                    End If
                End If
            End If
        End Sub
    
        Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            Dim valore As Int32 = System.Convert.ToInt32(e.KeyChar)
            e.Handled = (valore = 13)
        End Sub
    
    End Class
    Come è possibile vedere ho realizzato una chat per ora.

    SERVER
    codice:
    Imports System.Net.Sockets
    Imports System.Text.UTF8Encoding
    
    Public Class Form1
    
        Dim cliente As TcpClient
        Dim flusso As NetworkStream
    
        Dim x As Integer
    
        Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            Try
                Dim temporaneo() As Byte = UTF8.GetBytes("chiusaconnessione123454321")
                flusso.Write(temporaneo, 0, temporaneo.Length)
            Catch ex As Exception
                End
            End Try
        End Sub
    
        Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            collegamento.Start()
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If cliente.Available > 0 Then
                Dim temporaneo(cliente.Available - 1) As Byte
                flusso.Read(temporaneo, 0, temporaneo.Length)
                Dim testo As String = UTF8.GetString(temporaneo)
                If testo = "chiusaconnessione123454321" Then
                    MsgBox("LOLLO si è disconnesso dalla chat.", MsgBoxStyle.Information, "Attenzione")
                    collegamento.Start()
                    Button1.Enabled = False
                    Label1.Text = "In attesa che LOLLO si connetta..."
                Else
                    TextBox2.AppendText(vbCrLf & "-  LOLLO: " & testo)
                End If
            End If
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If TextBox1.Text = "" Or TextBox1.Text = " " Or TextBox1.Text = "  " Then
                pausa.Start()
            Else
                invia()
            End If
        End Sub
    
        Private Sub invia()
            pausa.Start()
            Button1.Enabled = False
            Dim temporaneo() As Byte = UTF8.GetBytes(TextBox1.Text)
            flusso.Write(temporaneo, 0, temporaneo.Length)
            TextBox2.AppendText(vbCrLf & "-  NICCO: " & TextBox1.Text)
            TextBox1.Text = ""
        End Sub
    
        Private Sub collegamento_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles collegamento.Tick
            Try
                Dim indirizzo As Net.IPAddress
                Net.IPAddress.TryParse("192.168.1.173", indirizzo)
                cliente = New TcpClient
                cliente.Connect(indirizzo, 8888)
                If cliente.Connected Then
                    collegamento.Stop()
                    Label1.Text = "LOLLO è connesso alla chat."
                    Button1.Enabled = True
                    flusso = cliente.GetStream()
                    Timer1.Start()
                End If
            Catch ex As Exception
    
            End Try
        End Sub
    
        Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
            If e.KeyCode = Keys.Enter Then
                If Button1.Enabled = True Then
                    If TextBox1.Text = "" Or TextBox1.Text = " " Or TextBox1.Text = "  " Then
    
                    Else
                        invia()
                    End If
                End If
            End If
        End Sub
    
        Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            Dim valore As Int32 = System.Convert.ToInt32(e.KeyChar)
            e.Handled = (valore = 13)
        End Sub
    
        Private Sub pausa_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pausa.Tick
            x = x + 1
            If x = 1 Then
                pausa.Stop()
                Button1.Enabled = True
                x = 0
            End If
        End Sub
    End Class
    Spero mi sappiate aiutare, ciao.

  2. #2
    Il titolo della discussione non è conforme al regolamento, mandami per favore un messaggio privato con la rettifica.
    Chi non cerca trova.

  3. #3
    Ah scusa, che titolo metto in modo che sia conforme?

  4. #4
    Leggi bene il punto 1 e il punto 2 del regolamento...
    Chi non cerca trova.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.