![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络传输
萨拉嘿
怕什么真理无穷,进一寸有一寸的欢喜
展开
-
网络传输之序列化
由于最近学习到序列化和反序列化的知识,便将以前写的网络传输代码加以修改,以下是传输一个数组的序列化服务器端:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Net;using System.Net.Sockets;us原创 2009-09-02 11:27:00 · 783 阅读 · 0 评论 -
基于Hole Punching的UDP穿越Symmetric NAT的方法(中1)
1.3.2 开通两客户端直接访问之洞 现在主机A欲与B直接进行UDP通信,A发送请求信息给Server S请求帮助连接B, S把B的全局和私有插口发送给A,也把A的全局和私有插口发送给B。A和B知道对方的插口后,就会尝试直接发送UDP报文给对方,既向全局插口发送,也向私有插口发送。私有地址不能被路由,故发送不会成功。下面讨论发向全局插口的UDP报文。A发送的第一个UDP报文以B的全局插口[202.1.1.1:3600]为目标插口,建立了一个新的UDP会话Session A-B,在A的内网由插口对[192.1转载 2010-10-15 09:36:00 · 1726 阅读 · 0 评论 -
基于Hole Punching的UDP穿越Symmetric NAT的方法(上)
1.1 现有的穿越NAT实现P2P通信的主要方法现有的穿越NAT实现P2P通信的主要方法有MidCom方法,STUN方法,TURN方法和Hole Punching方法。MidCom (Middlebox communication architecture and framework)[2]方法是通过在第三方实体和NAT之间建立中间盒来通信,使NAT设备变为可控的一种方法。其支持UDP和TCP的穿越,但要求NAT设备具备 Middleboxs功能,否则需要升级或替换。MidCom是IETF提出的通信协议。S转载 2010-10-15 09:33:00 · 3670 阅读 · 0 评论 -
NAT的完全分析及其UDP穿透的完全解决方案
<br />一:基本术语<br />防火墙<br />防火墙限制了私网与公网的通信,它主要是将(防火墙)认为未经授权的的包丢弃,防火<br />墙只是检验包的数据,并不修改数据包中的IP地址和TCP/UDP端口信息。<br />网络地址转换(NAT)<br />当有数据包通过时,网络地址转换器不仅检查包的信息,还要将包头中的IP地址和端口信<br />息进行修改。以使得处于NAT之后的机器共享几个仅有的公网IP地址(通常是一个)。网络<br />地址转换器主要有两种类型.<br />P2P应用程序<br /转载 2010-10-15 10:50:00 · 1189 阅读 · 0 评论 -
基于Hole Punching的UDP穿越Symmetric NAT的方法(中2)
2.1.3猜测方法与算法思路NAT映射的端口范围为(1024,65535),设PS为目标主机向服务器S注册时的全局端口号,把区间(1024,PS)和(PS,65535)以PS为界分成数百段(本算法分为400段)。1. 对【判定2】端口的猜测对端口映射方式是【判定2】的情形,由于第二种方式的可能性大于第三种,故目标端口号P很可能落在PS附近的段内。算法先猜PS左右邻的两段,随机猜遍这两段内的数字,若没有猜中再猜次靠近PS的两段,同样随机猜遍段内所有数字。猜遍附近的若干段(本算法共猜12段)若仍猜不中,说明端口转载 2010-10-15 09:38:00 · 1522 阅读 · 0 评论 -
使用UDP网络通讯
[Quote=引用 64 楼 wxg22526451 的回复:]C#UDP的多路广播组的发送和接收下列范例使用 UdpClient,在通讯端口11000传送UDP 资料包至多点传送位址群组 224.268.100.2。它传送命令列上指定的信息字串。 C# codeusing System;using System.Net;using System.Net.Sockets;using Syste转载 2009-12-11 09:41:00 · 1011 阅读 · 0 评论 -
基于Socket的网络连接
实只要用到Socket联接,基本上就得使用Thread,是交叉使用的。 C#封装的Socket用法基本上不算很复杂,只是不知道托管之后的Socket有没有其他性能或者安全上的问题。 在C#里面能找到的最底层的操作也就是socket了,概念不做解释。 程序模型如下: WinForm程序 : 启动端口侦听;监视Socket联接情况;定期关闭不活动的联接; Listener:处理Socket的Accep转载 2009-12-11 09:36:00 · 1795 阅读 · 0 评论 -
网络传输——XML文档的序列化
服务器端:using System.Net;using System.Net.Sockets;using System.Threading;using System.Xml;using System.Xml.Serialization;namespace 输出{ class Program { static void Main(string[] args)原创 2009-10-26 15:45:00 · 1453 阅读 · 1 评论 -
网络传输之同步异步SOCKET通讯和多线程
同步套接字通信Socket支持下的网上点对点的通信服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能服务器端建立一个socket,设置好本机的ip和监听的端口与socket进行绑定,开始监听连接请求,当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信。客户端建立一个socket,设置好服务器端的IP和提供服务的端口,发出连接请求,接转载 2009-09-11 10:10:00 · 2841 阅读 · 1 评论 -
网络编程之同步,阻塞,异步,非阻塞
同步:函数没有执行完不返回,线程被挂起 阻塞:没有收完数据函数不返回,线程也被挂起异步:函数立即返回,通过事件或是信号通知调用者非阻塞:函数立即返回,通过select通知调用者这样看来异步和非阻塞有什么区别呢?异步=非阻塞?同步是在操作系统层面上,阻塞是在套接字上?Reactor是同步 Proactor是异步?回答:同步、异步、阻塞和非阻塞的概念 在进行网转载 2009-09-09 09:45:00 · 396 阅读 · 0 评论 -
基于Hole Punching的UDP穿越Symmetric NAT的方法(下)
我们把以上猜法和算法称为准随机猜测。简化的客户端算法流程如图2所示。图2 客户端算法流程 2.1.4 k值的确定与目标端口号的表达式k是从B向S注册起到向A发送第一个猜询报文期间,B方内网主机包括B在NAT同一全局地址上端口映射的次数。K值靠估计确定。考虑的因素之一是A方和B方内网当前注册的客户端总数,其值越大则k值越大;因素之二是B方内网可能注册的客户端总数,其值越大则k值越大;因素之三是B方NAT中的全局IP地址总数,其值越大则k值越小。因素之一的当前注册的客户端总数n,在Client转载 2010-10-15 09:43:00 · 2080 阅读 · 1 评论