
网络服务器开发
文章平均质量分 66
Linux 网络层
Lionel_Coder
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【利用C++ RAII机制】实现Hello World服务器
RAII实现服务器写一个服务器程序写c++的时候,尤其是服务器开发会对异常情况作处理。常见的场景还比如:RAII 防止内存泄漏服务器代码客户端代码写一个服务器程序写一个简单的服务器,客户端链接服务器之后,服务器给其发一个Hello World之后,中断服务器和客户端的链接。写c++的时候,尤其是服务器开发会对异常情况作处理。int main_codeblock_if() { ... int ret = listenfd = socket(AF_INET, SOCK_STREAM, 0原创 2021-08-15 17:11:37 · 326 阅读 · 0 评论 -
【多路复用-服务器实现】Poll
Poll服务器实现框架#include <头文件>int main(int argc, char const *argv[]){ lfd = socket(); bind(); listen(); struct pollfd client[OPEN_MAX]; // 声明pollfd结构体 client[0].fd = lfd; // 要监听的第一个文件描述符 client[0].events = POLLIN; // lfd监听普通读事件 for (int i = 1;原创 2021-04-17 21:11:03 · 168 阅读 · 0 评论 -
udp如何实现可靠性传输?
1udp与tcp的区别 TCP(TransmissionControl Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 UDP是User Datagram Protocol,...转载 2021-04-02 15:20:30 · 664 阅读 · 0 评论 -
转载——select用法&原理详解(源码剖析)
最近刚接触Linux下的select用法,查阅了很多资料终于懂得了一丁点,故将自己查阅后有用的资料整理在这下面。博客链接都是很有价值,写的很好的文章。在研读源码时主要看的是这篇文章:深入select多路复用内核源码加驱动实现 自己能力精力有限,没有办法自己写一篇完完整整的文章,故只能当个搬运工了,文章先后顺序尽量按照了知识点的先后~~如果有什么问题欢迎一起探讨学习~ 前期知识 在开始接触select之前,你需要先对IO的同步,异步,阻塞,非阻塞有个基本的了解,知道什么是IO多路复用。下面这篇文章可以帮转载 2021-03-29 17:08:24 · 573 阅读 · 0 评论 -
Socket通信建立过程
socket 组成读缓存写缓存等待队列原创 2021-03-28 18:18:07 · 193 阅读 · 0 评论 -
P2P服务器 - 客户端实现(多进程)
在熟悉Linux Socket编程的时候,照着视频课程敲了一个P2P服务器客户端,实现了两端都能读写操作。目录服务器端创建socket()构建sockaddr_in结构体设置socket reuseaddrbind socket监听socket fdaccpte() 接受 client 连接服务器读写部分读进程写进程服务器端创建socket()首先创建socket(),socket 文件描述符叫做listen_fd //创建socket int listen_fd = socket(PF_I原创 2021-03-26 01:17:53 · 1610 阅读 · 0 评论 -
协议和网络缩略词
面试中问到了ping命令,ping命令位于那一层?我说应用层。面试官持怀疑态度,再想想对应什么协议?我急中生智ICMP协议,面试下来搜了博客。ping命令就是基于ICMP协议实现的。TCP\IP协议栈中,应用层协议有:TelnetFTPSMTPHTTPHTTPS传输层协议主要有:UDPTCP网络层协议主要有IP协议ICMP协议 ping commandIGMP协议数据链路层主要协议有:ARP协议RARP协议...原创 2021-03-26 15:36:21 · 190 阅读 · 0 评论 -
【多路复用-服务器实现】select
selectselect 作为元祖级别的io复用技术。有一个set 保存文件描述符,然后遍历,没有的话就阻塞线程。思路很简单。原创 2021-03-26 15:24:50 · 245 阅读 · 0 评论 -
【多路复用-服务器实现】epoll
epoll的接口非常简单,一共三个函数:typedef union epoll_data{void *ptr;int fd;__uint32_t u32;_uint64_t u64;}epoll_data_t;struct epoll_event{ __uint32 events; //epoll events epoll_data_t data; //user data variable}int epoll_create(int size);int epoll_ctl(int原创 2021-03-26 14:30:14 · 238 阅读 · 0 评论