freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于tcp的局域網(wǎng)視頻聊天程序課程設(shè)計(jì)-文庫(kù)吧資料

2024-11-24 20:04本頁(yè)面
  

【正文】 } } private void button2_Click(object sender, EventArgs e) { ()。 } //監(jiān)聽(tīng)接收消息進(jìn)程 private void ListenMessage() { while (Flag == true) { string Message = 對(duì)方 : + ((client1)) + \n。 message = () + : 文件傳輸完成!文件保存在 + SendFileName + \n。 //將接收到的數(shù)據(jù)包寫(xiě)入到文件流對(duì)象 (data, 0, )。 if ( == 0) { break。 //已發(fā)送包的個(gè)數(shù) int SendedCount = 0。 (Path)。 if (!(Path)) (Path)。 //獲得 [文件名 ] string SendFileName = ((client))。 (client)。 AddMessage(message)。 //等待客戶(hù)鏈接 while (Flag == true) { Socket client = ()。 (new IPEndPoint(myIP, 2052))。 } } //監(jiān)聽(tīng)文件接收端 private void ListenFile() { IPAddress myIP = (())[0]。 = 關(guān)閉服務(wù) 。 Listen1 = new Thread(ListenFile)。 } //建立消息監(jiān)聽(tīng)線(xiàn)程 Listen2 = new Thread(ListenMessage)。 //連接到發(fā)送端 (ipep)。 } try { //指向遠(yuǎn)程服務(wù)端節(jié)點(diǎn) IPEndPoint ipep = new IPEndPoint(SendIP, myport2)。 } catch { (IP地址有錯(cuò)誤! )。 } } private void ST_Click(object sender, EventArgs e) { ()。 try { (client1, (Message))。 ()。 AddMessage(message)。 } //關(guān)閉文件流 ()。 ()。 (client, data)。 } //如果還有多余的數(shù)據(jù)包 ,則應(yīng)該發(fā)送完畢 ! if (LastDataPacket != 0) { data = new byte[LastDataPacket]。 i++) { //從文件流讀取數(shù)據(jù)并填充數(shù)據(jù)包 (data, 0, )。 //開(kāi)始循環(huán)發(fā)送數(shù)據(jù)包 16 for (int i = 0。 (client, (path))。 //最后一個(gè)包的大小 int LastDataPacket = (int)( ((long)(PacketSize * PacketCount)))。 //包的大小 int PacketSize = 10000。 FileInfo EzoneFile = new FileInfo(file)。 //連接到發(fā)送端 (ipep)。 try { //指向遠(yuǎn)程服務(wù)端節(jié)點(diǎn) IPEndPoint ipep = new IPEndPoint(SendIP, myport1)。 public void StartSend(Object Path) { string file = (string)()。 ()。 } string Path = 。 } } private void Send_Click(object sender, EventArgs e) { 15 if ( == 0) { (請(qǐng)選擇文件! )。 (d, message)。 } } /// summary ///利用委托向 RichTextBox中添加信息 /// /summary /// param name=message/param private delegate void AddMessageDelegate(string message)。 public Form1() { InitializeComponent()。 MemoryStream receiveMS。 Image bmap。 Socket client_camera。//監(jiān)聽(tīng)視頻的線(xiàn)程 bool isshipin = false。//監(jiān)聽(tīng)文件線(xiàn)程 Thread Listen2。//視頻監(jiān)聽(tīng)端口 int camera_port1 = 2054。//消息監(jiān)聽(tīng)端口 14 int myport3 = 2052。//消息套接字 int myport1 = 2050。//標(biāo)示是否開(kāi)啟服務(wù) Socket ServerFileSocket。 Socket client1。 總之,這次的課程設(shè)計(jì) 的順利完成 使我受益匪淺。這同時(shí)也鍛煉了我的解決問(wèn)題和資料收集的能力。 通過(guò)這次的課程設(shè)計(jì),對(duì)于 TCP/IP 協(xié)議,套接字的使用、攝像頭的啟動(dòng)與應(yīng)用有了很深入的理解。 12 3. 文字聊天的截圖 4. 文件傳輸截圖 5. 視頻聊天截圖 13 五、 課程設(shè)計(jì)總結(jié) 通過(guò)這次 課程設(shè)計(jì) ,我對(duì) 軟件開(kāi)發(fā) 有了進(jìn)一步的了解,把理論知識(shí)應(yīng)用于實(shí)驗(yàn)中 。 ? 文件傳輸:?jiǎn)螕簟緸g覽】按鈕,選擇要發(fā)送的文件,文件的路徑會(huì)顯示在他旁邊的文本框中,單擊發(fā)送按鈕便可以將文件發(fā)送到服務(wù)端。 11 2. 客戶(hù)端軟件啟動(dòng)時(shí)界面如下所示 當(dāng)服務(wù)端啟動(dòng)之后,客戶(hù)端才可以進(jìn)行相關(guān)的操作: ? 在“ 服務(wù)方 IP”中輸入服務(wù)端的 IP 地址,如果測(cè)試的是本機(jī)就直接輸入本機(jī)的 IP 地址,軟后單擊【啟動(dòng)服務(wù)】,便可以連接到服務(wù)端,在連接到服務(wù)端之后才可以進(jìn)行其他的相關(guān)操作。發(fā)送的消息會(huì)顯示在上面的聊天記錄文本框中。 10 } 四、 系統(tǒng)測(cè)試及結(jié)果 1. 服務(wù)端軟件啟動(dòng)時(shí)界面如下所示 當(dāng)服務(wù)端軟件啟動(dòng)時(shí),首先單擊【開(kāi)啟服務(wù)】,這樣客戶(hù)端才能連接到服務(wù)端上。 ()。 receiveMS = new MemoryStream(buffer)。 ()。 LocalVedioShow()。//關(guān)閉內(nèi)存流 } } else { yulan = false。 = (receiveMS)。//打印消息 if (single) { while (true) {//接受視頻函數(shù)的主體 byte[] buffer = (client)。 message = () + : 對(duì)方 + + 請(qǐng)求視頻 \n。//監(jiān)聽(tīng)端口 (1)。//本機(jī) IP地址 ServerMessageSocket = new Socket(, , )。 } private void listentCamera() { = false。 } catch (Exception ex) { 9 (視頻發(fā)送錯(cuò)誤! )。 (client_camera, arrImage)。 } byte[] arrImage = ()。 //將截圖存放到內(nèi)存流中 if ((typeof())) { bmap = (Image)((typeof()))。 try { //將攝像頭的一幀數(shù)據(jù)存放到剪貼板中 ()。 AddMessage(message)。 } //關(guān)閉文件流 ()。 ()。 (client2, data)。 } 8 //如果還有多余的數(shù)據(jù)包 ,則應(yīng)該發(fā)送完畢 ! if (LastDataPacket != 0) { data = new byte[LastDa
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1