Ciao raga
Il codice che vi sto per postare serve per connettere due pc tramite tcp per lo scambio di dati:
codice:
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Net.Sockets
Imports System.Net.Sockets.TcpClient
Imports System.Net
Imports System
Public Class Form1
Private moTcpClient, moTcpRxClient As TcpClient
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim moTcpServer = New TcpListener(13000)
moTcpServer.Start()
lb1.Text = ("Listening...")
Button3.Enabled = False
Button2.Enabled = True
Button1.Enabled = False
Do While Not moTcpServer.Pending
Application.DoEvents()
Loop
moTcpRxClient = moTcpServer.AcceptTcpClient
lb1.Text = ("Connection received...")
moTcpServer.Stop()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim moLocalIP = Dns.GetHostByName(Dns.GetHostName)
Dim ip = moLocalIP.AddressList(0).ToString
'// Creates object
Dim oPerson As New Person(TextBox1.Text, Int32.Parse(TextBox2.Text))
'// Let's use dotNET TcpClient
moTcpClient = New TcpClient()
moTcpClient.Connect(ip, 13000)
If moTcpClient.GetStream.CanWrite Then
'// Serializes object in memory
Dim bf As New BinaryFormatter()
Dim oStream As New System.IO.MemoryStream()
bf.Serialize(oStream, oPerson)
'// Gets bytes...
Dim buf(CInt(oStream.Length)) As Byte
oStream.Position = 0
Dim iRet As Int32 = oStream.Read(buf, 0, buf.Length)
oStream.Close()
'// Send object through TCP-IP...
moTcpClient.GetStream.Write(buf, 0, buf.Length)
Button3.Enabled = True
Button2.Enabled = False
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'// Deserializes object
Dim oNs As NetworkStream = moTcpRxClient.GetStream
If oNs.CanRead Then
If oNs.DataAvailable Then
'// Deserializes object
Try
Dim bf As New BinaryFormatter()
Dim oRxPerson As Person = CType(bf.Deserialize(oNs), Person)
Risultato.Text = String.Format("Name:{0} Age:{1}", oRxPerson.Name, oRxPerson.Age)
Catch ex As Exception
'// Something wrong...
MessageBox.Show(ex.Message, "Deserialization error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
'// Closes connection
moTcpRxClient.Close()
' btnDeser.Enabled = False
Button3.Enabled = False
Button2.Enabled = False
Button1.Enabled = True
End Try
End If
End If
End Sub
End Class
'// Just a simple person object...
<Serializable()> Public Class Person
Public Name As String
Public Age As Int32
Public Sub New(ByVal name As String, ByVal age As Int32)
Me.Name = name
Me.Age = age
End Sub
End Class
Quest'esempio trovato in rete serve per mandare una stringa da un pc all'altro tramite tcp.
io invece vorrei inviare un file fisico esempio un "file.pdf", e che l'utente di destinazione quando va a deserializzare il file lo salvi automaticamente nella sua cartella Condivisi...
Come posso modificare il sopracitato codice per fare quanto detto?
Ho provato in vari modi ma nn ci riesco 
Grazie mille