发送端 Public Class Form1
    Inherits System.Windows.Forms.Form
    Private Sub Button1_Click(ByVal sender As System.Object,
      ByVal e As System.EventArgs) Handles Button1.Click
        Dim sendsocket As New Net.Sockets.Socket
  (Net.Sockets.AddressFamily.InterNetwork,
  Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
  '实例化socket
        Dim ipendpiont As New Net.IPEndPoint
  (Net.IPAddress.Parse("192.168.0.1"), 8888)'建立终结点
        'OpenFileDialog1.ShowDialog()
        Dim fs As New IO.FileStream("c:\p.doc",
  IO.FileMode.OpenOrCreate, IO.FileAccess.Read)'要传输的文件
        Dim fssize(fs.Length - 1) As Byte
        Dim strread As New IO.BinaryReader(fs)'流处理要传输的文件
        'fs.Read(fssize, 0, fssize.Length - 1)
        strread.Read(fssize, 0, fssize.Length - 1)
        sendsocket.Connect(ipendpiont)'连接远程计算机
        sendsocket.Send(fssize)'发送文件
        Label1.Text = fs.Length()
        fs.Close()
        sendsocket.Shutdown(Net.Sockets.SocketShutdown.Send)
  '关闭发送连接
        sendsocket.Close()'关闭本机socket
    End Sub
End Class
                    接收端 Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim receivesocket As New Net.Sockets.Socket
      (Net.Sockets.AddressFamily.InterNetwork,
      Net.Sockets.SocketType.Stream,
      Net.Sockets.ProtocolType.Tcp)
    Private Sub Form1_Load(ByVal sender As System.Object,
        ByVal e As System.EventArgs) Handles MyBase.Load
        Dim hostipendpiont As New Net.IPEndPoint
  (Net.IPAddress.Parse("192.168.0.1"), 8888)
        receivesocket.Bind(hostipendpiont)
  '建立远程计算机的的socket
        receivesocket.Listen(2)'监听socket
    End Sub    Private Sub Button1_Click(ByVal sender As Object,
      ByVal e As System.EventArgs) Handles Button1.Click
        Dim recfs As New IO.FileStream("p.doc",
  IO.FileMode.OpenOrCreate)
  '接收数据并将其保存到一个新的文件中
        Dim recbyte(229888) As Byte
        Dim hostsocket As Net.Sockets.Socket =
  receivesocket.Accept()
  '同意和发送端计算机建立连接
        Dim newfilestr As New IO.BinaryWriter(recfs)'流写
        hostsocket.Receive(recbyte)
        'recfs.Write(recbyte, 0, recbyte.Length - 1)
        newfilestr.Write(recbyte, 0, recbyte.Length - 1)
        recfs.Close()
        hostsocket.Shutdown(Net.Sockets.SocketShutdown.Receive)
        hostsocket.Close()
    End Sub
End Class

解决方案 »

  1.   

    socket的组播应用
    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;namespace send
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class send
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: 在此处添加代码以启动应用程序
    //
    UdpClient sock=new UdpClient();
    IPEndPoint iep=new IPEndPoint(IPAddress.Parse("224.100.0.1"),9050);
    while(true)
    {
    string newtext=Console.ReadLine();
    byte[] data=Encoding.ASCII.GetBytes(newtext);
    sock.Send(data,data.Length,iep);
    }
    sock.Close();
    }
    }
    }
    using System;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;namespace recv
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class recv
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: 在此处添加代码以启动应用程序
    //
    UdpClient sock=new UdpClient(9050);
    Console.WriteLine("ready...");
    sock.JoinMulticastGroup(IPAddress.Parse("224.100.0.1"),50);
    IPEndPoint iep=new IPEndPoint(IPAddress.Any,0);
    while(true)
    {
    byte[] data=sock.Receive(ref iep);
    string stringdata=Encoding.ASCII.GetString(data,0,data.Length);
    if (stringdata=="bye")
    break;
    Console.WriteLine("received:{0}",stringdata);
    }
    sock.Close();
    }
    }
    }
      

  2.   

    强烈BS倒分垃圾
    参见
    http://community.csdn.net/Expert/topic/3488/3488766.xml?temp=.7287409