当前位置: 首页 > news >正文

网站开发报价 福州/域名备案官网

网站开发报价 福州,域名备案官网,wordpress 相关推荐,设计相关的网站一个TCP和UPD聊天、传收文件程序作者:河北 CA王雪松 下载源代码 摘要: 本文通过例子,介绍了如何在局域网中进行聊天、互发文件以及抓取对方屏幕保存为文件。程序还包括了取得本机和对方的IP、计算机名称。滚动ListBox控件等功能本人初次发…

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


作者:
河北 CA王雪松

下载源代码


 摘要:

    本文通过例子,介绍了如何在局域网中进行聊天、互发文件以及抓取对方屏幕保存为文件。程序还包括了取得本机和对方的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;
if (pThreadLisen != NULL)
{
if(::GetExitCodeThread(pThreadLisen->m_hThread, &dwStatus)==0)
{
int errror=GetLastError();
return;
}
if (dwStatus == STILL_ACTIVE)
{
CSocket sockClient;
sockClient.Create();
CString ip,strError;
ip="127.0.0.1";
int conn=sockClient.Connect(ip, m_Potr);
if(conn==0)	
{
AfxMessageBox("关闭错误!"+GetError(GetLastError()));
sockClient.ShutDown(2);
sockClient.Close();
return;
}
sockClient.Send("D",FLAG); //结束
}
}
 二.发送、接受文件。比较简单,参看源程序。 发送
for(;;)
{
num=myFile.Read(m_buf, SIZEFILE);
if(num==0) break;//读文件完毕
end=sockClient.Send(m_buf, num); 
}
 接受
for(;;)
{
n=recSo.Receive(buf,SIZEFILE);	//接受
if(n==0)	break;	//0表示结束
f.Write(buf,n);
}
 三、聊天请参看源程序
else if(m_type==''M'')	//信息
{
char buff[100]={0};
CString msg;
int ret=0;
for(;;)
{
ret=recSo.Receive(buff,100);
if(ret==0)
break;
msg+=buff;
}
CString strOut,strIn;
m_You_IP.GetWindowText(strIn);
GetNamebyAddress(strIn,strOut);
CString youName;
youName.Format(inet_ntoa(client.sin_addr));
CString str=youName+"<-"+strOut;
AddMsgList(str,msg);
}
 四、抓屏,VC知识库上例子很多,不详细介绍了。在VC6+Win2000上测试过。
http://www.jmfq.cn/news/5101381.html

相关文章:

  • 帝国cms 做的博客网站/如何在百度推广自己
  • 教育网站设计案例/杯子软文营销300字
  • wordpress菜单插件/seo网络营销公司
  • 足球比分网站建设/河南疫情最新消息
  • 公司网站建设的请示/公司网站设计
  • 邯郸做企业网站改版/百度推广一个月费用
  • wordpress建淘宝客网站教程/世界足球排名前100
  • 网站建设收费标准市场/百度视频
  • 营销策划方案怎么做模板/seo常用工具有哪些
  • 网站banner图怎么设计/深圳企业网站制作
  • 洪山网站建设公司/广告竞价排名
  • 台江网站建设/东莞seoseo关键词排名优化
  • 外贸有限公司英文网站/seo关键词优化的技巧
  • 做卡贴质量好的网站/颜色广告
  • 中英文网站是咋做的/关键词优化公司排名
  • 重生北京上大学开网吧做网站的小说/杭州优化seo公司
  • 做网站banner分辨率设置多大/最新疫情爆发
  • 俄语在线网站制作/怎么联系百度客服人工服务
  • 淘宝客网站免费做/seo sem优化
  • 网站飘窗怎么做/重庆百度推广的代理商
  • 小鸡a做爰片免费网站/收录提交入口
  • 网络团队建设/seo网站建设优化什么意思
  • 政府型网站规划建设/wordpress seo教程
  • 网站建设php培训/百度热门关键词
  • 淘客网站建设/北京新闻最新消息
  • 服装网站建设配色/抖音排名优化
  • 网站文章好几天不收录/什么软件可以推广自己的产品
  • 百度做网站推广多少钱/友情链接交换平台源码
  • 宁波建网站哪家/安新seo优化排名网站
  • 丰台区社会建设工作办公室网站/百度一下首页下载安装桌面