当前位置:编程学习 > C/C++ >>

一个TCP和UPD聊天、传收文件程序

 


摘要:

    本文通过例子,介绍了如何在局域网中进行聊天、互发文件以及抓取对方屏幕保存为文件。程序还包括了取得本机和对方的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;
补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,