|
亿众国际点对点文件传输程序(13) //包的数量 int PacketCount=(int)(EzoneStream.Length/((long)PacketSize)); this.textBox8.Text=PacketCount.ToString(); this.progressBar1.Maximum=PacketCount; //最后一个包的大小 int LastDataPacket=(int)(EzoneStream.Length-((long)(PacketSize*PacketCount))); this.textBox9.Text=LastDataPacket.ToString(); //创建一个网络端点 IPEndPoint ipep=new IPEndPoint(IPAddress.Any,int.Parse(this.textBox5.Text)); //创建一个套接字 Socket server=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //绑定套接字到端口 server.Bind(ipep); //开始侦听(并堵塞该线程) server.Listen(10); //确认连接 Socket client=server.Accept(); //获得客户端节点对象 IPEndPoint clientep=(IPEndPoint)client.RemoteEndPoint; //获得客户端的IP地址 this.textBox7.Text=clientep.Address.ToString(); //发送[文件名]到客户端 CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(EzoneFile.Name)); //发送[包的大小]到客户端 CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(PacketSize.ToString())); //发送[包的总数量]到客户端 CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(PacketCount.ToString())); //发送[最后一个包的大小]到客户端 CommonModule.EzoneModule.SendVarData(client,System.Text.Encoding.Unicode.GetBytes(LastDataPacket.ToString())); //数据包 byte[] data=new byte[PacketSize]; //开始循环发送数据包 for(int i=0;i<PacketCount;i++) { //从文件流读取数据并填充数据包
|