基础不牢,地动山摇!

socket通信之九:使用完成端口实现的一个聊天室

基本上windows平台下的几种IO模型都实现了一遍,还有两个没有实现,但是它们一个需要基于windows消息,一个和重叠IO中的事件通知模型比较类似,并且不能实现真正的异步,所以就不列出来了。 这一篇介绍如何实现一个聊天室。前面介绍的几种模型中除了基本的socket模型和阻塞版本的模型之外都...

2015-09-04 23:08:02

阅读数:3098

评论数:0

socket通信之八:完成端口模型实现的客户/服务器模型

完成端口的详细说明可以参考下面这两篇文章,理论讲的很好。 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解  完成端口(I/O completion)原理 收藏 但是本文的实现和它们还是有点区别。 这里就只列出完成端口服务器端的基本流程了。 ...

2015-09-03 16:10:38

阅读数:1455

评论数:0

socket通信之七:Overlapped I/O 完成例程模型实现的客户/服务器模型

前一篇介绍了重叠IO的一种实现方式即基于事件通知的方式,这一篇介绍另外一种方式,即使用完成例程的方式实现重叠IO,首先声明这种方式比事件通知的方式简单多了。 用完成例程来实现重叠I/O比用事件通知简单得多。在这个模型中,主线程只用不停的接受连接即可;辅助线程判断有没有新的客户端连接被建立...

2015-09-03 14:00:24

阅读数:1284

评论数:0

socket通信之六:Overlapped I/O 事件通知模型实现的客户/服务器模型

1.基于事件通知模型的Overlapped I/O(重叠IO模型) 概括一点说,重叠模型是让应用程序使用重叠数据结构(WSAOVERLAPPED),一次投递一个或多个Winsock I/O请求。针对这些提交的请求,在它们完成之后,应用程序会收到通知,于是就可以通过自己另外的代码来处理这些数据了...

2015-09-02 21:12:42

阅读数:1956

评论数:0

socket通信之五:select多路复用的客户/服务器模型

前面一篇介绍了服务器端使用多线程的方式来处理多个客户端的请求的,但是当客户端数量增多时线程数量会急剧增加,导致消耗大量的资源。 于是就引出了服务器端的一种新的模型。 1. 阻塞与非阻塞 首先介绍几个基本的概念。 阻塞方式( block ),顾名思义,就是...

2015-09-02 14:52:47

阅读数:4316

评论数:1

socket通信之四:多线程版本的客户/服务器模型

上一篇中阻塞版本的客户/服务器模型实现了一个客户端能连续向服务器端发送数据,但是因为服务器端在循环体内会被阻塞,这样其它客户端再连接服务器端时服务器是无法处理的,这就导致了服务器只能处理一个客户端,其它客户端都会等待,直到当前处理的客户端退出,然后就会再有一个客户端和服务器端连接。 这一篇文章介...

2015-09-02 14:51:52

阅读数:1962

评论数:2

socke通信之三:阻塞版本的客户/服务器模型

上一篇中实现出来的客户端只能向服务器端发送一次数据,然后就断开了连接,那么如果需要向服务器端持续发送数据,那么应该怎么做? 一个很直观地想法就是修改客户端的第4步,即发送,接收数据那一步,在基本的客户/服务器模型中我们是直接发送一个字符串给服务器端,现在我们从控制台接收数据将接收到的数据发送给...

2015-09-02 14:50:30

阅读数:805

评论数:0

socket通信之二:实现一个基本的客户/服务器模型

前一篇介绍了TCP/IP协议族和socket的一些基本的知识,这篇文章介绍在windows下如何实现一个使用socket通信的客户和服务器模型。首先还是将基本的流程回顾一下,任何复杂的模型都是从这个基本的模型中衍生出来的,然后介绍一下在windows平台下相关的api。 ...

2015-09-02 14:48:06

阅读数:3354

评论数:1

socket通信之一:TCP/IP模型与socket

这段时间看了一些网络相关的东西,这里做一个总结吧。参考了很多文章的内容,因为我本身是对着书并且参考网络资源在学习的,在最后会一一列出文章的地址。 这篇文章主要介绍TCP/IP的一些基本知识,后面几篇继续深入一点探究。 本篇主要包括下面这些知识: TCP/IP是什么socket介绍...

2015-09-02 14:44:28

阅读数:4297

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭