程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 一個TCP和UPD聊天、傳收文件程序

一個TCP和UPD聊天、傳收文件程序

編輯:關於C語言

 


摘要:

    本文通過例子,介紹了如何在局域網中進行聊天、互發文件以及抓取對方屏幕保存為文件。程序還包括了取得本機和對方的IP、計算機名稱。滾動ListBox控件等功能。

運行界面如下:



一、 啟動終止監聽線程(只介紹TCP)

    由於此程序可以即時切換狀態,因此需要結束仍處於接受狀態的線程。
//TCP監聽線程

UINT _ListenTcpThread(LPVOID lparam)
{
         CMyQQDlg *pDlg=(CMyQQDlg *)lparam;
         CSocket sockSrvr;
         pDlg->m_Potr=PORT+pDlg->m_server;//保存當前使用端口,用於關閉
         int createSucceed=sockSrvr.Create(pDlg->m_Potr);
         int listenSucceed=sockSrvr.Listen();        //開始監聽
         CSocket recSo;
         SOCKADDR_IN client;
         int iAddrSize=sizeof(client);
         int acceptSucceed=sockSrvr.Accept(recSo,(SOCKADDR *)&client,&iAddrSize);       //接受連接並取得對方IP
         sockSrvr.Close();
         char flag[FLAG]={0};               //接受標示,用於判斷接受到的是信息,文件等
         if(recSo.Receive(flag,FLAG)!=2) 
         {
                 return -1;       
         }
         pDlg->m_type=flag[0];
         if(pDlg->m_type==D) return 0;//終止此線程
         pThreadLisen=::AfxBeginThread(_ListenTcpThread,pDlg);
         pDlg->ReceiveFileMsg(recSo,client);
         return 0;
}

關閉

if(m_nSockType==SOCK_TCP)
{
         DWORD   dwStatus;

							
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved