Skip to content

yearsj/ClientServerProject

Repository files navigation

ClientServerProject

使用select、poll、epoll实现TCP反射程序

接着上文IO多路复用(一)-- Select、Poll、Epoll,接下来将演示一个TCP回射程序,源代码来自于该博文https://www.cnblogs.com/Anker/p/3258674.html 博主的几篇相关的文章,在这里将其进行了整合,突出select、poll和epoll不同方法之间的比较,但是代码的结构相同,为了突出方法之间的差别,可能有的代码改动的并不合理,实际中使用并非这么写。

程序逻辑

该程序的主要逻辑如下:

服务器1. 开启服务器套接字
	2. 将服务器套接字加入要监听的集合中select的fd_setpoll的pollfdepoll调用epoll_ctl3. 进入循环调用IO多路复用的API函数select/poll/epoll_create),如果有事件产生3.1. 服务器套接字产生的事件添加新的客户端到监听集合中
		3.2. 客户端套接字产生的事件读取数据并立马回传给客户端
		
客户端1. 开启客户端套接字
	2. 将客户端套接字和标准输入文件描述符加入要监听的集合中select的fd_setpoll的pollfdepoll调用epoll_ctl3. 进入循环调用IO多路复用的API函数select/poll/epoll_create),如果有事件产生3.1. 客户端套接字产生的事件则读取数据将其输出到控制台
		3.2. 标准输入文件描述符产生的事件则读取数据将其通过客户端套接字传给服务器

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages