基于tcp的局域网视频聊天程序课程设计内容摘要:

{ (请选择文件。 )。 return。 } string Path =。 Thread SendFile = new Thread(StartSend)。 ()。 } //发送文件函数 Socket client。 public void StartSend(Object Path) { string file = (string)()。 string message = null。 try { //指向远程服务端节点 IPEndPoint ipep = new IPEndPoint(SendIP, myport1)。 //创建套接字 client = new Socket(, , )。 //连接到发送端 (ipep)。 //获得客户端节点对象 IPEndPoint clientep = (IPEndPoint)。 FileInfo EzoneFile = new FileInfo(file)。 //打开文件流 FileStream EzoneStream = ()。 //包的大小 int PacketSize = 10000。 //包的数量 int PacketCount = (int)( / ((long)PacketSize))。 //最后一个包的大小 int LastDataPacket = (int)( ((long)(PacketSize * PacketCount)))。 //发送 [文件名 ]到客户端 string path = C:\\Temp\\ +。 (client, (path))。 //数据包 byte[] data = new byte[PacketSize]。 //开始循环发送数据包 16 for (int i = 0。 i PacketCount。 i++) { //从文件流读取数据并填充数据包 (data, 0, )。 //发送数据包 (client, data)。 } //如果还有多余的数据包 ,则应该发送完毕 ! if (LastDataPacket != 0) { data = new byte[LastDataPacket]。 (data, 0, )。 (client, data)。 } ()。 ()。 } catch { (远程主机未开启。 )。 } //关闭文件流 ()。 message = () + : 文件发送完毕 \n。 AddMessage(message)。 } private void button1_Click(object sender, EventArgs e) { string Message =。 ()。 AddMessage(我 : + Message+\n)。 try { (client1, (Message))。 } catch { (请开启服务。 )。 } } private void ST_Click(object sender, EventArgs e) { ()。 17 if ( == 启动服务 ) { try { SendIP = ()。 } catch { (IP地址有错误。 )。 return。 } try { //指向远程服务端节点 IPEndPoint ipep = new IPEndPoint(SendIP, myport2)。 //创建套接字 client1 = new Socket(, , )。 //连接到发送端 (ipep)。 } catch { (远程主机未开启 )。 } //建立消息监听线程 Listen2 = new Thread(ListenMessage)。 ()。 Listen1 = new Thread(ListenFile)。 ()。 = 关闭服务。 } else { = 启动服务。 } } //监听文件接收端 private void ListenFile() { IPAddress myIP = (())[0]。 ServerFileSocket = new Socket(, , )。 (new IPEndPoint(myIP, 2052))。 18 (10)。 //等待客户链接 while (Flag == true) { Socket client = ()。 message = () + : 客户端 : + () + 接入 \n。 AddMessage(message)。 Thread rec = new Thread(ReceiveFile)。 (client)。 } } /// summary /// 接收文件的函数 /// /summary /// param name=Myclient/param public void ReceiveFile(Object Myclient) { Socket client = (Socket)Myclient。 //获得 [文件名 ] string SendFileName = ((client))。 //创建目录 string Path = (0, (\\) + 1)。 if (!(@Path)) (@Path)。 else { (@Path, true)。 (@Path)。 } //创建一个新文件 FileStream MyFileStream = new FileStream(SendFileName, , )。 //已发送包的个数 int SendedCount = 0。 while (true) { byte[] data = (client)。 if ( == 0) { break。 } else 19 { SendedCount++。 //将接收到的数据包写入到文件流对象 (data, 0, )。 } } //关闭文件流 ()。 message = () + : 文件传输完成。 文件保存在 + SendFileName + \n。 AddMessage(message)。 } //监听接收消息进程 private void ListenMessage() { while (Flag == true) { string Message = 对方 : + ((client1)) + \n。 AddMessage(Message)。 } } private void button2_Click(object sender, EventArgs e) { ()。 ()。 ()。 } int device_number = 0。 bool yulan = true。 private void buttonSee_Click(object sender, EventArgs e)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。