• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
张纯睿
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  MFC06:通讯

!!! TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞

摘要:TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人叫TCP打孔(我的朋友小妞听说后问“要打孔啊,要不要我帮你去借个电钻过来啊?”“~!·¥%……·!”)。闲话少说,我们先看一下技术背景:Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用。NAT设备允许处于同一NAT后的多台主机共享一个公网(本文将处于同一NAT后的网络称为私网,处于 NAT前的网络称为公网) IP 地址。一个 阅读全文
posted @ 2012-12-13 14:47 张纯睿 阅读(246) 评论(0) 推荐(0)
使用TCP协议的NAT穿透技术 (转)

摘要:http://www.cnblogs.com/regedit/articles/829725.html其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之。 一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的)。但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完整性,这常常会大大增加程序的复杂度,而且一些程序由于某些原因,必须使用TCP协议,这样就常常令一些开发TCP网络程序 阅读全文
posted @ 2012-12-13 14:40 张纯睿 阅读(205) 评论(0) 推荐(0)
UDP穿越NAT原理

摘要:http://blog.csdn.net/ldd909/article/details/5979967论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。 最开始NAT是运行在路由器上的一个功能模块。 最先提出的是 阅读全文
posted @ 2012-12-13 14:25 张纯睿 阅读(474) 评论(0) 推荐(1)
CASyncSocket类和CSocket类编程

摘要:CASyncSocket类和CSocket类编程 简言之,CSOCKET是对SOCKET API 的高级而又简单的包装,而CAsyncSocket的包装就相对低级, 要求程序员自己处理的细节多,但应用就更灵活,更接近API, CSocket派生于CAsyncSocket,支持同步操作。 CAsyncSocket封装Windows Sockets API windows的socket默认是阻塞模式,CAsyncSocket是非阻塞模式,CSocket是非阻塞模式的阻塞socket.阻塞非阻塞可以通过ioctlsocket函数来设置。 本文主要讲解以下内容 (1)CAsyncSocket类编程模式 阅读全文
posted @ 2011-06-29 15:05 张纯睿 阅读(710) 评论(0) 推荐(0)
用一个工作线程来发送询问命令,等待接收到下位机应答数据后退出。如果两秒下位机未应答,则重发询问命令。重发10次下位机不应答,则认为通信故障,

摘要:http://topic.csdn.net/u/20081107/09/69dbccb7-5da3-4b50-9792-8cd2df37f2b5.html最后用线程同步的方法解决 //初始化同步事件 hTimer=::CreateEvent(NULL,FALSE,FALSE,NULL); //线程中的相关代码 CRecordreaderView *m_pView = (CRecordreaderView *)lParam; ///////////////////// 发送查询命令相关代码 //////////////////// while(::WaitForSingleObject(hTim 阅读全文
posted @ 2011-05-03 23:29 张纯睿 阅读(210) 评论(0) 推荐(0)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3