随笔分类 -  NETWORK

摘要:inet_addr("192.168.1.1");//返回网络字节序整型ip地址inet_ntoa(saddr);//将包含网络字节序整型ip地址的in_addr对象转换成本地char*类型的ip地址sockaddr_in中的in_addr对象sin_addr的s_addr一定要用网络字节序整型ip地址赋值inet_addr返回的也是网络字节序sockaddr_in全是网络字节序in_addr使用时也全是网络字节序inet_ntoa参数存放的必须是网络字节序struct sockaddr_in{ short sin_family; unsigned short sin_po 阅读全文
posted @ 2014-04-09 13:06 maowang 阅读(924) 评论(0) 推荐(0) 编辑
摘要:各种软件网络端口的分类:即时通讯类: 1、腾讯QQ通讯协议及端口范围 QQ 默认采用UDP 通讯方式,端口8000,8001。如果UDP 的两个端口不通,会自动转换到TCP 80端口或者TCP 443端口进行通讯。QQ 同时也支持HTTP 代理模式及SOCK5 代理模式。 2、MSN通讯协议及端口范围 MSN(Live)messenger 采用TCP 通讯方式,支持1863 端口和80 端口,并在登录过程中使用HTTPS,端口443。MSN 支持代理服务器(HTTP 代理,SOCK4/SOCK5 代理)。 3、雅虎通通讯协议及端口范围 雅虎通采用TCP 通讯方式,默认端口5050,... 阅读全文
posted @ 2014-02-27 20:42 maowang 阅读(10103) 评论(2) 推荐(1) 编辑
摘要:两种I/O模式一.选择模型二.异步选择三.事件选择四.重叠I/O模型五.完成端口模型五种I/O模型的比较两种I/O模式1、两种I/O模式阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回WSAEWOULDBLOCK错误。但功能强大。如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSele 阅读全文
posted @ 2014-02-25 22:00 maowang 阅读(2058) 评论(0) 推荐(1) 编辑
摘要:FD_ZERO,FD_ISSET这些都是套节字结合操作宏看看MSDN上的select函数,这是在select io 模型中的核心,用来管理套节字IO的,避免出现无辜锁定.int select( int nfds,fd_set FAR *readfds, fd_set FAR *writefds, fd_set FAR *exceptfds, const struct timeval FAR *timeout );第一个参数不管,是兼容目的,最后的是超时标准,select是阻塞操作当然要设置超时事件.接着的三个... 阅读全文
posted @ 2014-02-25 21:27 maowang 阅读(15585) 评论(0) 推荐(0) 编辑
摘要:1)头文件windows下winsock.h/winsock2.hlinux下sys/socket.h 错误处理:errno.h2)初始化windows下需要用WSAStartupWSADATA wsaData; err = WSAStartup(0x202,&wsaData); if ( err != 0 ) { return 0; } else if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) //检测是否支持这个版本的socket { WSACleanup( ); return 0. 阅读全文
posted @ 2014-02-25 21:20 maowang 阅读(6221) 评论(0) 推荐(0) 编辑
摘要:使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?比如发送文件。记得有人提过可能会发生什么堆栈溢出。怎样避免呢?是不是可以收到数据后发送确认包,收到确认包后再继续发送。或是发送方发送了一些数据后sleep一下。还有,我们都知道,使用UDP协议发送包时需要确认,但TCP协议时面向连接的可靠传输,是不是发出的包肯定可以收到,不需要确认呢?1 楼netsys2(来电!)回复于 2003-09-23 13:31:44 得分 0 比如发送文件。记得有人提过可能会发生什么堆栈溢出。怎样避免呢?------->分段发送,定长接收,正确接收后响应前台。例如:前台-->后台:先发文件名,长度 阅读全文
posted @ 2013-08-20 16:20 maowang 阅读(5333) 评论(0) 推荐(0) 编辑
摘要:TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SY 阅读全文
posted @ 2013-07-15 17:54 maowang 阅读(377) 评论(0) 推荐(0) 编辑
摘要:首先,先确定自己的笔记本网卡支持“启动承载网络”的功能,使用管理员运行cmd命令,里面敲击netsh wlan show drivers命令,会显示无线网卡驱动信息,如下图所示,如果功能是“否”,说明你的无线网卡不支持这个功能,如果为“是”就继续跟我尝试这个功能吧。【确定的方法,还可以查看任务管理器,无线网卡的“驱动程序详细信息”,里面是否有vwifibus.sys驱动程序文件,大家也可以通过这个方法确定】 确定你的无线网卡有这个功能后,开始启动virtaul wifi,同样是命令行netsh wlan set hostednetwork mode=allow ssid=Windows7... 阅读全文
posted @ 2013-05-17 22:03 maowang 阅读(383) 评论(0) 推荐(0) 编辑
摘要:TCP_NODELAY 和 TCP_CORK这两个选项都对网络连接的行为具有重要的作用。许多UNIX系统都实现了TCP_NODELAY选项,但是,TCP_CORK则是Linux系统所独有的 而且相对较新;它首先在内核版本2.4上得以实现。此外,其他UNIX系统版本也有功能类似的选项,值得注意的是,在某种由BSD派生的系统上的 TCP_NOPUSH选项其实就是TCP_CORK的一部分具体实现。TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。 John Nagle是Nagle算法的发明人,后者就是用他的 阅读全文
posted @ 2013-04-16 18:59 maowang 阅读(5592) 评论(0) 推荐(0) 编辑
摘要:计算机各层网络协议应用层: (典型设备:应用程序,如FTP,SMTP ,HTTP)DHCP(Dynamic Host Configuration Protocol)动态主机分配协议,使用UDP 协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。实现即插即用连网。BOOTP (BOOTstrapProtocol) 引导程序协议/ 自举协议,使用UDP 来使一个无盘工作站自动获取配置信息。静态的配置协议DNS (Domain Name System )域名解析<端口号53>FTP (File Transfe 阅读全文
posted @ 2013-04-16 17:54 maowang 阅读(32241) 评论(0) 推荐(5) 编辑
摘要:首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在应用层 它们的关系是数据帧{IP包{TCP或UDP包{Data}}} ---------------------------------------------------------------------------------在应用程序中我们用到的Data的长度最大是多少,直接取决于底层的限制。 我们从下到上分析一下: 1.在链路层,由以太网的物理特性决定了数据帧... 阅读全文
posted @ 2013-04-15 21:30 maowang 阅读(27861) 评论(2) 推荐(2) 编辑