网络编程
文章平均质量分 70
多学多看
InsaneDuck
学习记录
展开
-
I/O多路复用之epoll模型简析
目录1 epoll函数1.1 epoll_create()1.2 epoll_ctl()1.3 epoll_wait()2 epoll工作模式2.1 LT模式(水平触发)2.1.1 程序示例2.1.2 运行结果2.2 ET模式(边沿触发)2.2.1 程序示例2.2.2 运行结果1 epoll函数1.1 epoll_create()#include <sys/epoll.h>//创建一个新的epoll实例。在内核中创建了一个数据,这个数据中有两个比较重要的数据,一个是需要检测的文件描述符的原创 2021-03-18 22:20:35 · 222 阅读 · 0 评论 -
Socket编程实现简单的本地套接字通信
目录1 本地套接字1.1 注意事项1.2 sockaddr_un结构体2 程序示例2.1 服务端程序2.2 客户端程序2.3 运行结果1 本地套接字1.1 注意事项创建Socket套接字时传递的参数与网络套接字不同,域参数应该是AF_LOCAL或者AF_UNIX,而不能用AF_INET之类。不同于网络套接字的绑定,本地套接字绑定的是struct sockaddr_un结构。客户端在连接前同样需要绑定本地套接字,并且填充服务端sockaddr_un地址结构,然后再进行connect。在通信结束后原创 2021-03-17 20:51:34 · 340 阅读 · 0 评论 -
Socket编程实现简单的UDP通信、广播、组播
目录1 UDP通信1.1 实现流程1.2 程序示例1.2.1 服务端1.2.2 客户端2 广播2.1 注意事项2.2 程序示例2.2.1 服务端2.2.2 客户端3 组播3.1 注意事项3.2 组播地址3.3 程序示例3.3.1 服务端3.3.2 客户端1 UDP通信1.1 实现流程1.2 程序示例1.2.1 服务端#include <iostream>#include <arpa/inet.h>#include <stdlib.h>#include &原创 2021-03-17 19:25:46 · 5006 阅读 · 0 评论 -
I/O多路复用之poll模型简析
函数原型#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout); fds:是一个struct pollfd结构体数组,这是一个需要检测的文件描述符的集合struct pollfd { int fd; /* file descriptor */ short events; /* requested events */ short revent原创 2021-03-16 15:53:51 · 141 阅读 · 0 评论 -
I/O多路复用之select模型简析
目录1 I/O多路复用1.1 主旨思想2 select函数2.1 函数原型2.2 参数说明2.3 优缺点2.3.1 优点三级目录参考:1 I/O多路复用1.1 主旨思想首先要构造文件描述符列表,将要监听的文件描述符添加到该列表中;调用一个系统函数,监听该列表中的文件描述符,直到这些文件描述符中的一个或者多个进行I/O操作时,该函数才会返回。函数返回后,进程会被告知有哪些描述符已准备好可以进行IO操作。select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过原创 2021-03-15 20:26:41 · 246 阅读 · 0 评论 -
Socket编程之多线程实现并发服务器
目录1 实现思路二级目录三级目录1 实现思路在主线程中循环accept()函数阻塞等待客户端连接请求,每接收一个连接请求就创建一个子线程;在子线程的回调函数中实现客户端与服务端的通信;注意事项:二级目录三级目录...原创 2021-03-13 21:00:20 · 680 阅读 · 0 评论 -
Socket编程之多进程实现并发服务器
目录1 实现思路2 服务端程序3 运行结果1 实现思路在父进程中循环accept阻塞等待客户端连接,每接收一个连接请求就创建一个子进程;在子进程中实现客户端与服务端的通信;子进程结束后发送SIGCHLD信号,通过信号捕捉函数捕捉信号终止的信息,在回调函数中完成子进程的回收,避免产生僵尸进程。2 服务端程序#include <iostream>#include <arpa/inet.h>#include <sys/socket.h>#include &原创 2021-03-13 15:53:38 · 233 阅读 · 0 评论 -
Socket编程实现简单的TCP通信
目录1 TCP通信流程1.1 服务端1.2 客户端2 服务端程序3 客户端程序4 运行结果1 TCP通信流程1.1 服务端创建一个用于监听的套接字,调用函数socket();创建服务端地址结构,指定服务端的IP协议族、IP地址和端口号;将监听套接器和服务端的地址信息进行绑定,调用函数bind();设置监听,调用函数listen();阻塞等待,当有客户端发起连接,解除阻塞,接受客户端的连接,返回一个和客户端进行通信的连接套接字,通过accept()函数可获得成功接入的客户端的地址结构;读写原创 2021-03-13 11:37:26 · 372 阅读 · 0 评论