现在位置: 首页 > 网络编程
// //  ConvertUtil.h //  MinaCppClient // //  Created by yang3wei on 7/22/13. //  Copyright (c) 2013 yang3wei. All rights reserved. // #ifndef __MinaCppClient__ConvertUtil__ #define __MinaCppClient__ConvertUtil__ #include <string> /** * htonl 表示 host to network long ,用于将主机 unsigned int 型数据转换成网络字节顺序; * htons 表示 host to ne...
阅读全文
2013-07-26 06:56 工业·编程 ⁄ 共 6267字 暂无评论
    WSAStartup应该与WSACleanup成对使用,WSAStartup的功能是初始化Winsock   DLL,WSACleanup是来解除与Socket库的绑定并且释放Socket库所占用的系统资源。    在Windows下,Socket是以DLL的形式实现的。在DLL内部维持着一个计数器,只有第一次调用WSAStartup才真正装载DLL,以后的 调用只是简单的增加计数器,而WSACleanup函数的功能则刚好相反,每调用一次使计数器减1,当计数器减到0...
阅读全文
    windows的socket在创建后,默认是阻塞调用的,也就是说函数recv,recvfrom,send,sendto等函数都是阻塞的;那么我们如何将他们设置成非阻塞调用呢?我们可以通过windows为我们提供的ioctlsocket 函数实现;先给出一个例子: BOOL LoadSocketSystem(void) { WORD wVersionRequested; SOCKADDR_IN addrSrv; BOOL bRet = FALSE; WSADATA wsaData;    ...
阅读全文
2013-07-23 00:26 工业·编程 ⁄ 共 961字 暂无评论
这阵子突然重新接手做了下关于TCP连接异常中断的检测, 这里的异常中断指的是目标主机断电, 网线被拔等非正常因素.   这个问题已经被处理很多年了, 无非2种基本解决策略:   1. 应用层心跳   2. 开启协议栈提供的keepalive, 这个和操作系统有关 有些操作系统提供的协议栈并不支持该特性, 因为TCP/IP协议标准中并没有要求实现该特性.   刚刚接手的时候, 直接做了一个应用层心跳, 不过后来和同事讨论了下, 发...
阅读全文
2013-07-23 00:24 工业·编程 ⁄ 共 398字 暂无评论
“Reset”其实是tcp的一种消息之一,用于重置连接,一般来说比如服务器端没有客户端请求的端口或者其他信息不符合时,系统的tcp协议栈就会给客户端回复一个reset通知消息。本来用于应对比如说服务器意外重启等情况的。但很多防火墙系统也用来禁止客户端的连接,如果防火墙发现网络包的规则被触发之后,就可以回一个reset消息让客户端的tcp连接被重置(也就是说断开连接)。     这样比直接把网络包丢弃要好,因为...
阅读全文
2013-07-23 00:23 工业·编程 ⁄ 共 3267字 暂无评论
  在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。 守护进程,也就是通常说的Daemon进程,是Linux中...
阅读全文
最近遇到的一个关于socket.close的问题,在某个应用服务器出现的状况(执行netstat -np | grep tcp): tcp        0      0 10.224.122.16:50158         10.224.112.58:8788          CLOSE_WAIT tcp        0    ...
阅读全文
服务器上的一些统计数据: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数 ps -ef|grep httpd|wc -l 3)、统计已连接上的,状态为“established netstat -na|grep ESTABLISHED|wc -l 4)、查出哪个IP地址连接最多,将其封了. netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n netstat -na|grep SYN|awk {print $5}|aw...
阅读全文
2013-07-22 23:59 工业·编程 ⁄ 共 2985字 暂无评论
1、建立连接协议(三次握手) (1)客户 端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。 (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标 志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通 讯。 (3) 客户必须再次回应服务段一个ACK报文,这是报文段3。 2、连接终止协议(四次握手) 由于TCP连 接是全双...
阅读全文
2013-07-22 23:40 工业·编程 ⁄ 共 2174字 暂无评论
1、BSD TCP/IP协议栈      BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP栈)是BSD栈派生的。这是因为BSD栈在BSD许可协 议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多 TCP/IP协议中的创新(如广域网中饿拥塞控制和避免)的开始点。 2、uC/IP     uC/IP是由Guy Lancaster编...
阅读全文