![](https://img-blog.csdnimg.cn/c52abfd4fe224756a75125e9c57d6d7a.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络编程
文章平均质量分 95
介绍网络编程相关内容,包含数据库,linux,计网,操作系统等相关内容
cat_fish_rain
无闻之辰黑暗凝,万籁寂静月光稀。 待到黎明破晓至,曙光照耀大地归。
展开
-
linux网络编程04--epoll多路IO模型
epoll的两种模式ET和LT模式水平触发: 高电平代表1,只要缓冲区中有数据, 就一直通知,边缘触发: 电平有变化就代表1缓冲区中有数据只会通知一次, 之后再有数据才会通知.(若是读数据的时候没有读完, 则剩余的数据不会再通知, 直到有新的数据到来)边缘非阻塞模式: 提高效率。原创 2023-08-01 22:06:52 · 202 阅读 · 0 评论 -
linux网络编程03--select多路IO转接模型
由于TCP有可能存在丢包重传, 丢包重传若发给了已经断 开连接之后相同的socket-pair(该连接是新建的, 与原来的socket-pair完 全相同, 双方使用的是相同的IP和端口), 这样会对之后的连接造成困扰, 严重可能引起程序异常.若是先关闭的客户端, 再关闭的服务端, 此时启动服务端就不会报这个错误.如果一方close, 另一方没有close, 则认为是半关闭状态, 处于半关闭状态的 时候, 可以接收数据, 但是不能发送数据. 相当于把文件描述符的写缓冲区 操作关闭了.原创 2023-07-31 20:09:23 · 197 阅读 · 0 评论 -
linux网络编程06-libevent的使用
链接监听器封装了底层的socket通信相关函数, 比如socket, bind, listen, accept这几个函数。答案: 当服务器收到新的连接请求的时候, 会自动触发listener_cb回调函数, 该函数中有往bufferevent缓冲区中写入的操作(调用bufferevent_write), 接着又会触发写回调函数conn_writecb的执行, 这个回调函数中调用了bufferevent_free, 该函数能够释放bufferevent, 同时会关闭socket连接.原创 2023-08-11 10:50:07 · 272 阅读 · 0 评论 -
linux网络编程05--线程池UDP
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。需要注意的是: bind函数会自动创建socket文件, 若在调用bind函数之前socket文件已经存在, 则调用bind会报错, 可以使用unlink函数在bind之前先删除文件.使用回到函数, 在任务中设置任务执行函数, 这样可以起到不同的任务执行不同的函数.TCP:传输控制协议, 面向连接的,稳定的,可靠的,安全的数据流传递。原创 2023-08-08 08:57:03 · 181 阅读 · 0 评论 -
linux -网络编程02-多线程并发服务器
TCP是面向连接的安全的数据传输, 在客户端与服务端建立建立的时候要经过三次握手的过程, 在客户端与服务端断开连接的时候要经历四次挥手的过程, 下图是客户端与服务端三次握手建立连接, 数据传输和断开连接四次挥手的全过程.在客户端给服务端发包的时候, 不一定是非要等到服务端返回响应包, 由于客户端知道服务端的窗口大小, 所以可以持续多次发送, 当发送数据达到对方窗口大小了就不再发送, 需要等到对方进行处理, 对方处理之后可继续发送.第二种方案: 使用多线程, 让主线程接受新连接, 让子线程处理与客户端通信;原创 2023-07-30 11:25:00 · 1164 阅读 · 0 评论 -
linux -网络编程01一网络基本概念和Socket编程
函数描述: 创建socket参数说明:domain: 协议版本AF_UNIX AF_LOCAL本地套接字使用type:协议类型SOCK_STREAM 流式, 默认使用的协议是TCP协议SOCK_DGRAM 报式, 默认使用的是UDP协议protocal:一般填0, 表示使用对应类型的默认协议.返回值:成功: 返回一个大于0的文件描述符失败: 返回-1, 并设置errno当调用socket函数以后, 返回一个文件描述符, 内核会提供与该文件描述符相对应的读和写缓冲区,原创 2023-07-29 11:15:09 · 384 阅读 · 0 评论