随笔分类 -  Tcp

几种网络I/O模型
摘要:网络I/O模型有几种?window 下的套接字以来两种方式执行I/O操作,阻塞IO 非阻塞IO,一般默认使用的是阻塞IO 即线程会等待不会把控制权利立刻返回给程序,这就意为一个线程在某一个时候只能够去执行一个IO操作。如果服务端想和多个客户端同时进行通信的话就要使用多线程编程,但是会增加开销,如果采用非阻塞IO程序不会等待,会立刻返回结果但是在大部分情况下返回的结果是错误的,并返回一个WSAEWOULDBLOCK的错误,所以程序员要不断的检测函数返回的代码以判断一个套接字何时可供读写。为了避免麻烦winsock 提供了不同的套接字模型对IO进行管理select (),WSAAsyncSelec 阅读全文

posted @ 2013-12-25 17:01 google_yep 阅读(4868) 评论(0) 推荐(0)

socket的select模型【摘】
摘要:套接字select模型是一种比较常用的IO模型。利用该模型可以使Windowssocket应用程序可以同时管理多个套接字。 使用select模型,可以使当执行操作的套接字满足可读可写条件时,给应用程序发送通知。收到这个通知后,应用程序再去调用相应的WindowssocketAPI去执行函数调用。 Select模型的核心是select函数。调用select函数检查当前各个套接字的状态。根据函数的返回值判断套接字的可读可写性。然后调用相应的WindowsSocketsAPI完成数据的发送、接收等。 利用select函数实现IO管理。通过对select函数的调用,应用程序可以判断套接字... 阅读全文

posted @ 2013-09-28 16:51 google_yep 阅读(470) 评论(0) 推荐(0)

TCP协议连接过程详解
摘要:1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。 (3) 客户必须再次回应服务段一个ACK报文,这是报文段3. 2、连接终止协议(四次分手) 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上... 阅读全文

posted @ 2013-02-01 17:38 google_yep 阅读(1254) 评论(0) 推荐(0)

导航