很迷惘的一个winform Socket外网点对点传送文件的问题
我做成的是只可以在内网进行点对点传送文件的,现在有几点很迷惑的问题。第一是不知道要如何才能支持外网点对点进行传送。第二是如果有好几台机器都运行了接收端,那我怎么去区分他们,然后将文件只发给一个指定的接收端。下面是我在网上找到的代码:
//*******************************************发送端*********************************************
private void StartSend()
{
//创建一个文件对象
FileInfo EzoneFile = new FileInfo(this.textBox1.Text);
//打开文件流
FileStream EzoneStream = EzoneFile.OpenRead();
//包的大小
int PacketSize = int.Parse(this.txtFileSize2.Text);
//包的数量
int PacketCount = (int)(EzoneStream.Length / ((long)PacketSize));
this.txtFileCount.Text = PacketCount.ToString();
this.progressBar1.Maximum = PacketCount;
//最后一个包的大小
int LastDataPacket = (int)(EzoneStream.Length - ((long)(PacketSize * PacketCount)));
this.txtLastFileSize.Text = LastDataPacket.ToString();
////创建一个网络端点
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, int.Parse(this.txtPort.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.txtReceiveIP.Text = clientep.Address.ToString();
//发送[文件名]到客户端
CommonModule.EzoneModule.SendVarData(client, System.Text.Encoding.Unicod