上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 100 下一页

2013年7月25日

UNIX网络编程——fcntl函数

摘要: fcntl函数提供了与网络编程相关的如下特性:非阻塞式I/O。 通过使用F_SETFL命令设置O_NONBLOCK文件状态标志,我们可以把一个套接字设置为非阻塞型。信号驱动式I/O。 通过使用F_SETFL命令设置O_ASYNC文件状态标志,我们可以把一个套接字设置成O_ASYNC,一旦其状态发... 阅读全文

posted @ 2013-07-25 01:47 胡永光 阅读(205) 评论(0) 推荐(0) 编辑

UNIX网络编程——内网与外网间通信

摘要: QQ是一个基于TCP/UDP协议的通讯软件 发送消息的时候是UDP打洞,登陆的时候使用HTTP~因为登陆服务器其实就是一个HTTP服务器,只不过不是常用的那些,那个服务器是腾讯自行开发的!!!一、登录 QQ客户端在局域网内,当你打开QQ登录到QQ服务器时,通过外网,你的... 阅读全文

posted @ 2013-07-25 01:02 胡永光 阅读(144) 评论(0) 推荐(0) 编辑

UNIX网络编程——TCP长连接与短连接的区别

摘要: 一、TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作,不过一般都是client先发... 阅读全文

posted @ 2013-07-25 00:56 胡永光 阅读(144) 评论(0) 推荐(0) 编辑

2013年7月24日

UNIX网络编程——经常使用的套接字选项

摘要: 1.设置/获取套接字选项int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len);int getsockopt(int socket, int lev... 阅读全文

posted @ 2013-07-24 15:53 胡永光 阅读(181) 评论(0) 推荐(0) 编辑

UNIX网络编程——心跳包

摘要: 所谓的心跳包就是在客户端和服务器端间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。 一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉。用于检... 阅读全文

posted @ 2013-07-24 15:44 胡永光 阅读(269) 评论(0) 推荐(0) 编辑

UNIX网络编程——套接字选项(SOL_SOCKET级别)

摘要: #include int setsockopt( int socket, int level, int option_name,const void *option_value, size_t option_len);第一个参数socket是套接字描述符。第二个参数level是被设置的选项的级别,... 阅读全文

posted @ 2013-07-24 15:39 胡永光 阅读(1847) 评论(0) 推荐(0) 编辑

UNIX网络编程——套接字选项(setsockopt)

摘要: setsockopt的一些用法:close socket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseadd... 阅读全文

posted @ 2013-07-24 15:04 胡永光 阅读(215) 评论(0) 推荐(0) 编辑

UNIX网络编程——处理服务器中大量的TIME_WAIT

摘要: 出现条件:服务器主动关闭 短连接服务加剧 根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),TIME_WAIT状态下的socke... 阅读全文

posted @ 2013-07-24 14:45 胡永光 阅读(148) 评论(0) 推荐(0) 编辑

UNIX网络编程——套接字选项(心跳检测、绑定地址复用)

摘要: /* 设置套接字选项周期性消息检测连通性 心跳包、 心博。主要用于长连接。 * 参数:套接字, 1或0开启, 首次间隔时间, 两次间隔时间, 断开次数 */void setKeepAlive( int iSockfd , int iSockAttrOn, socklen_t iIdleTime ,... 阅读全文

posted @ 2013-07-24 14:02 胡永光 阅读(230) 评论(0) 推荐(0) 编辑

UNIX网络编程——TCP 滑动窗口协议

摘要: 什么是滑动窗口协议? 一图胜千言,看下面的图。简单解释下,发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面图中的4,5,6号数据帧已经被发送出去,但是未收到... 阅读全文

posted @ 2013-07-24 13:59 胡永光 阅读(196) 评论(0) 推荐(0) 编辑

上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 100 下一页

导航