关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的;我打个很简单的比方,如果你调用socket send函数时;如果是阻塞模式下:send先比较待发送数据的长度len和套接字s的发送缓冲的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;如果len...
分类:
其他好文 时间:
2014-06-28 10:23:25
阅读次数:
211
启动sql server服务时失败,报如下消息:服务器 TCP 提供程序无法在 [ 'any' 1433] 上侦听。TCP 端口已在使用中。TDSSNIClient 初始化失败,出现错误 0x2740,状态代码 0xa。原因: 无法初始化 TCP/IP 侦听器。 通常每个套接字地址(协议/网络地址....
分类:
其他好文 时间:
2014-06-27 21:57:41
阅读次数:
239
客户端(>5w)异步connect连接到server端,server端listen backlog设置为1024,发现存在部分客户端建立连接后,收到服务端的rst包。先看下tcp监听套接字维护的两个队列(来自Unix网络编程)测试模拟抓包如下:解释:异步connect过快,导致server端list...
分类:
其他好文 时间:
2014-06-26 17:51:36
阅读次数:
248
使用Raw Socket实现Ping 仅仅采用ICMP.DLL并不能完全实现ICMP灵活多变的各类报文,只有使用Raw Socket才是ICMP的终极解决之道。 使用Raw Socket发送ICMP报文前,我们要完全依靠自己的代码组装报文://功能:初始化ICMP的报头, 给data部分填充数据.....
分类:
其他好文 时间:
2014-06-26 12:30:14
阅读次数:
392
设置connect超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案。偶所讲的也正是select函数,此函数集成在winsock1.1中,简单点讲,"作用使那些想避免在套接字调用过程中被锁定的应用程序,采取一种有序的方式,同时对多个套接字进行管理"(《Windows...
分类:
其他好文 时间:
2014-06-26 00:16:15
阅读次数:
336
先来谈谈为什么会出现select函数,也就是select是解决什么问题的?平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好。这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设...
inet_pton和inetntop函数。字母p和n代表presentation和numeric。地址的表达presentation格式通常是ASCIL串,数值(numeric)格式则是存在于套接字地址结构中的二进制值。inet_pton和inet_ntop函数是比较新的函数,它们能够处理ipv4和...
分类:
其他好文 时间:
2014-06-25 21:51:13
阅读次数:
209
引言:
套接字编程其实跟进程间通信有一定的相似性,可能也正因为此,stevens这位大神才会将套接字编程与进程间的通信都归为“网络编程”,并分别写成了两本书《UNP1》《UNP2》。TCP套接字编程是套接字编程中非常重要的一种,仔细分析,其实它的原理并不复杂。现在就以一个例子来详细分析TCP套接字编程。
一、示例要求:
本节中试着编写一个完成的TCP客户/服务器程序示例,并对它进行深...
分类:
其他好文 时间:
2014-06-24 20:59:53
阅读次数:
248
网络相关的东西几乎都是建立在套接字之上.所以这个内容对于程序员来说还是蛮重要的啊.
其实套接字也就是一个特殊的设备文件而已,我始终不能明白为什么要叫套接字.这么个奇怪的名字.不过还是就这样算了吧.关键还是编程上.由于其重要性,我还是写的详细一点吧.
一.套接字
核心函数: int socket(int domain,int type,int protocol);
这个函数在通信域d...
分类:
系统相关 时间:
2014-06-22 21:04:46
阅读次数:
395
1.客户端细节分析
ChannelFactory是创建一个通道(和一次具体的通信实体关联如网络套接字)的主要接口,比如NioServerSocketChannelFactory 会创建一个Channel,有基于NIO的服务套接字作为底层的通信实体。一旦一个新的通道创建,那么对应的ChannelPipeline就会开始处理相关的ChannelEvents。
NioC...
分类:
Web程序 时间:
2014-06-22 18:29:51
阅读次数:
208