预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK"http://heisetoufa.javaeye.com/blog/257070"c#winformsocket网络编程,点对点传输文件,socket文件传输,监听端口 关键字:socket网络编程点对点传输文件文件传输监听端口 服务器用来接收文件,不停的监听端口,有发送文件就马上开始接收文件服务端代码: C#代码 usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usingSystem.Windows.Forms; usingSystem.Net; usingSystem.Threading; usingSystem.Net.Sockets; usingSystem.IO; namespaceTestSocketServerHSTF { publicpartialclassForm1:Form { publicForm1() { InitializeComponent(); //不显示出dataGridView1的最后一行空白 dataGridView1.AllowUserToAddRows=false; } #region定义变量 #endregion #region进入窗体即启动服务 privatevoidForm1_Load(objectsender,EventArgse) { //开启接收线程 ThreadTempThread=newThread(newThreadStart(this.StartReceive)); TempThread.Start(); } #endregion #region功能函数 privatevoidStartReceive() { //创建一个网络端点 IPEndPointipep=newIPEndPoint(IPAddress.Any,int.Parse("2005")); //MessageBox.Show(IPAddress.Any); //创建一个套接字 Socketserver=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //绑定套接字到端口 server.Bind(ipep); //开始侦听(并堵塞该线程) server.Listen(10); //确认连接 Socketclient=server.Accept(); //获得客户端节点对象 IPEndPointclientep=(IPEndPoint)client.RemoteEndPoint; //获得[文件名] stringSendFileName=System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client)); //MessageBox.Show("文件名"+SendFileName); //获得[包的大小] stringbagSize=System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client)); //MessageBox.Show("包大小"+bagSize); //获得[包的总数量] intbagCount=int.Parse(System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client))); //MessageBox.Show("包的总数量"+bagCount); //获得[最后一个包的大小] stringbagLast=System.Text.Encoding.Unicode.GetString(TransferFiles.ReceiveVarData(client)); //MessageBox.Show("最后一个包的大小"+bagLast); //创建一个新文件 FileStreamMyFileStream=newFileStream(SendFileName,FileMode.Create,FileAccess.Write); //已发送包的个数 intSendedCount=0; while(true) { byte[]data=TransferFiles.ReceiveVarData(client); if(data.Len