关于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
设置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
本文只是对TCP协议做个简要的介绍。
TCP协议,即传输控制协议,与UDP协议同处于传输层,同样使用相同的网络层,但TCP提供了一种可靠的、面向连接的数据传输服务,它会在两个使用TCP的应用之间建立一个TCP连接,在该连接上进行数据的传输。
TCP通过以下方式提供可靠性:
1、应用程序被分割成TCP认为最合适发送的数据块。这点与UDP完全不同,应用程序产生的UDP数据报长度将保持不变,加上IP首部后,才会进行IP分片。
2、当TCP发出一个报文段后,它会启动一个定时器,等待目...
分类:
其他好文 时间:
2014-06-22 21:24:20
阅读次数:
180
1.客户端细节分析
ChannelFactory是创建一个通道(和一次具体的通信实体关联如网络套接字)的主要接口,比如NioServerSocketChannelFactory 会创建一个Channel,有基于NIO的服务套接字作为底层的通信实体。一旦一个新的通道创建,那么对应的ChannelPipeline就会开始处理相关的ChannelEvents。
NioC...
分类:
Web程序 时间:
2014-06-22 18:29:51
阅读次数:
208
教学章节
教学内容
学时安排
备注
1
Android快速入门
2
Android模拟器与常见命令
3
Android用户界面设计
4
Android网络通信及开源框架引用...
分类:
移动开发 时间:
2014-06-22 06:57:59
阅读次数:
340