25.muduo学习笔记之net_Socket.{h&cc}

Linux 内核态 Socket 编程--更正 Server端代码: #include #include #include #include #include #include int myserver(void){ struct socket *sock,*client_sock; struct sockaddr_in s_addr; unsigned short portnum=0x8870; int ret=0; m 阅读详情

1. 说明

  1. 一个socket类,用RAII方法封装socket fd

2. 变量

  1. sockfd_
    • 套接字fd,构造函数中赋值

3. 函数

  1. 构造

    • 赋值sockfd_
  2. 析构

    • 调用close()关闭sockfd_
  3. fd()

    • 返回sockfd_
  4. getTcpInfo(struct tcp_info* tcpi)

    • 获得tcp信息保存到tcpi中,这是一个结构体,在<netinet/tcp.h>中定义
  5. getTcpInfoString(char* buf, int len)

    • 调用getTcpInfo()先获得tcp信息,把tcp信息的字符串保存到buf中
  6. bindAddress(const InetAddress& localaddr)

    • 调用sockets::bindOrDie(sockfd_, addr.getSockAddr());实际就是调用bind()
  7. listen()

    • 调用sockets::listenOrDie(sockfd_);
  8. accept(InetAddress* peeraddr)

    • 调用sockets::accept(sockfd_, &addr);
    • 并且调用peeraddr->setSockAddrInet6(addr);,赋值连过来的ip地址
  9. shutdownWrite()

    • 调用sockets::shutdownWrite(sockfd_);
  10. setTcpNoDelay(bool on)

    • 调用setsockopt()设置是否nodelay
  11. setReuseAddr(bool on)

    • 调用setsockopt()设置是否重用addr
  12. setReusePort(bool on)

    • 调用setsockopt()设置是否重用port
  13. setKeepAlive(bool on)

    • 调用setsockopt()设置是否keepalive
Dify如何实现自主学习 摘要:Dify通过构建感知-决策-执行-反馈的闭环实现"自主学习",本质是打造能自动获取信息、更新知识库并调整策略的Agent工作流。核心包括:1)建立知识库作为记忆体;2)搭建感知与执行工具获取实时信息;3)通过工作流编排决策"大脑",包含LLM决策节点、行动执行节点和反馈反思节点。典型应用如根据用户反馈优化回答风格,通过存储反思日志到知识库实现持续优化。这种机制使智能体能基于新数据和经验不断自我改进。 阅读详情

相关推荐

Raid5损坏两块盘

  以下为浪潮Inspur NF5460M4型号服务器故障处理过程: 设备raid5组损坏两块硬,并raid组处理离线状态,情况如图:     由于硬盘数据比较重要,面对此情况不要慌我们尽量做到安全保守的保证数据尽可能完整,以下为处理方法,(遇raid5两块盘出现问题处理方法)   以下截图均为遇相同问题的解决图案,并非现场截图。 Ctrl+H 进WebBios界面,发现两...

chen_lipeng的博客 2万+

muduo::TcpConnection分析

muduo::TcpConnection分析

KangRoger的专栏 3914

Latex下使用JabRef添加参考文献

文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 Latex可以手动添加参考文献,但文献过多时,使用JabRef软件相对方便。 提示:以下是本篇文章正文内容,下面案例可供参考 一、JabRef安装 网址:http://www.jabref.org 打开网址后,点击“Download” 进入如下页面后,选择 portable (便携版,无需安装),下载后是一压缩包,打开即可使用。 二、使用 1.创建库 ...

sz3076799的博客 3467

Linux内核:网络过滤器简介与示例代码

转载:Linux内核:网络过滤器简介与示例代码_RToax-优快云博客 #include <linux/module.h> #include <linux/skbuff.h> #include <linux/init.h> #include <net/sock.h> #include <linux/inet.h> #include <linux/ip.h> #include <li...

liu605925527的博客 638

UMI刷盘机器人代码实战:从SLAM到Diffusion Policy的完整部署流程

本文详细解析了UMI(Universal Manipulation Interface)刷盘机器人从数据准备到真实部署的完整实战流程。通过SLAM处理视频数据生成三维轨迹,并训练Diffusion Policy模型,最终将策略部署到UR5机械臂与WSG50夹爪上,实现从模仿学习到物理执行的闭环。

weixin_29042035的博客 461

A Mathematical Framework for Transformer Circuits—(一)

transformer数学理解理论

qq_42208244的博客 2663

Linux TCP协议栈定时器走读

导语:TCP协议栈是事件驱动的,如果说TCP的拥塞算法是tcp协议栈的心脏,那么tcp协议栈的定时器则是tcp协议栈的心跳。1. 数据结构TCP协议栈的定时器众多,也异常复杂,在这里主要简单走一遍tcp协议栈的定时器机制。N.Wirth曾说:程序=数据结构+算法。某大牛曾说:好的数据结构设计是程序成功的一半。首先来看一下定时器的数据结构:struct timer_list //include

Al_xin的专栏 7098

配置cts performance最优范围

这里写自定义目录标题cts例如此案例中,我们多测几次,发现Measured frame rate 的平均值为average=(380+389+380+371)/4=380 cts by VinterYoung Expected achievable frame rates for OMX.MTK.VIDEO.DECODER.HEVC video/hevc 1280x720: [75.0, 262.0]. Measured frame rate: [380.5645006622224, 389.3983545

o343196469的博客 1318

Docker 网络虚拟化基础之网络 namespace

见如下的关键函数 copy_net_ns(它的调用链是 do_fork => copy_process => copy_namespaces => create_new_namespaces => copy_net_ns)。Linux 中所有的进程都是由这个 1 号进程创建的。接下来就是 socket 创建的时候,内核中可以通过 current->nsproxy->net_ns 把当前进程所属的 netns 找出来,最终把 socket 中的 sk_net 成员和该命名空间建立好了联系。

qq_36733838的博客 1017

骚戴笔记公告

骚戴笔记公告

我从不打没有准备的仗! 2万+

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5888

网络编程学习(八)_高质量epoll编程实例(类封装+连接池)

Linux下基于epoll高并发服务器实现

weixin_39318565的博客 264

SolidWorks软件二次开发:使用C#进行SolidWorks二次开发

SolidWorks 提供的 API(应用程序编程接口)允许开发者使用多种编程语言(如 C#、VB.NET 等)来控制和扩展 SolidWorks 的功能。API 架构基于 COM(组件对象模型),这意味着开发者可以通过引用 SolidWorks 的类型库来访问其对象模型。SolidWorks 的对象模型包括了从文档、零件、装配体到特征、草图等所有 SolidWorks 中可操作的对象。

kkchenjj的博客 3215

muduo 源码学习之 TcpConnection

文章目录功能描述TcpConnection.hTcpConnection.cc 功能描述 TcpConnection class用来表示一个 TCP 连接, 不可再生, 如果这个连接断开, 那么该TcpConnection就失去了意义 TcpConnection中包含有封装好的读写 buffer, 用来收发数据 TcpConnection的生命周期由智能指针shared_ptr来管理, 具体在下...

weixin_36888577的博客 745

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

33.muduo学习笔记之net_TcpConnection.{h&cc}

1. 说明 一个TcpConnection类,代码有点长 使用了Channel,EventLoop,Socket,Buffer类 继承noncopyable,enable_shared_from_this,把当前对象转换成share指针,在connectEstablished()中有用到 在连接到来,创建一个TcpConnection对象,立刻使用shared_ptr来管理,引用计数为1.在Ch...

LvPartner的博客 496

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TCP_INFO信息查询

查看当前TCP信息 更多字段可以查询/uer/include/netinet/tcp.h文件#include&lt;stdio.h&gt;  2 #include&lt;sys/socket.h&gt;  3 #include&lt;string.h&gt;  4 #include&lt;unistd.h&gt;  5 #include&lt;stdlib.h&gt;  6 #include&lt...

zhangyu627836411的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

2.6.27内核 netlink socket实现内核和用户的通信

三天的努力,终于搞定了自己需要的这种通信机制:由内核态向用户态反馈信息;先看代码,内核的:#include #include #include #include #include #include #include //it include linux/netlink.h#define NETLINK_TEST 17#define M

流氓D的专栏 7150

Socket

Socket::~Socket() { sockets::close(sockfd_); } bool Socket::getTcpInfo(struct tcp_info* tcpi) const { socklen_t len = sizeof(*tcpi); memZero(tcpi, len); return ::getsockopt(sockfd_, SOL_TCP, TCP_INFO, tcpi, &len) == 0; } bool Socket::getTcpI.

qu1993的博客 481

muduo之Socket和SocketsOps

Socket.cc和SocketsOps.cc用来调用一个套接字设置选项和底层的socket API,也包括一些类型转换,记录一下,以后可以直接拿来用。 Socket.cc // Copyright 2010, Shuo Chen. All rights reserved. // http://code.google.com/p/muduo/ // // Use of t...

1万+

muduo库分析——net篇(4)Socket相关

muduo将Socket中系统调用封装在sockets命名空间中,这是对socket各种操作的一种抽象socket本身的一些操作比如bind,accept等等单独抽象成一个socket类由于在linux下,有各种socket地址结构体,因此 还有专门的InetAddress地址器先看SocketsOps文件,这是socket底层操作的封装创建一个socketint sockets::createN...

renhaopeng的博客 725

Linux下C语言如何使用 netlink sockets与内核模块通信?

内核模块 #include <linux/module.h> #include <net/sock.h> #include <linux/netlink.h> #include <linux/skbuff.h> #define NETLINK_USER 31 struct sock *nl_sk = NULL; static void hello_nl_recv_msg(struct sk_buff *skb) { struct nlms

wgl307293845的博客 2036

getsockopt的TCP层实现剖析

应用层 NAME getsockopt - get options on sockets SYNOPSIS #include <sys/types.h> #include <sys/socket.h> int getsockopt (int s, int level, int optname, void *op...

weixin_30906671的博客 493

struct sock详解

struct sock详解    结构体sock是套接口在网络层的表示,在代码include/net/sock.h 174行定义,下面是其内容:<br />    struct sock {<br />        struct sock_common  __sk_common;<br />#define sk_family       __sk_common.skc_family<br />#define sk_state        __sk_common.skc_state<br />#defin

babyfans的专栏 8716

【Muduo源码剖析笔记】 网络库之Socket

Muduo库源码阅读笔记

LeeEdgar的博客 211

Linux Kernel 学习笔记9:内核与用户层通信之netlink

(本章基于:Linux-4.4.0-37) 内核与用户空间通信有很多种通信方式,netlink是其中一种,其余的还有/proc、ioctl、sockopt、共享内存等等。netlink的特点是异步全双工。 netlink使用32位端口寻址,称为pid(与进程号没有关系),其中内核的pid地址为0,。netlink主要特性如下: ① 支持全双工、异步通信(当然同步也支持) ② 用

stone8761的专栏 1万+

Netlink实例----用户态内核态全包含

/*  * netlink_kernel.c  */ #ifndef __KERNEL__ #define __KERNEL__ #endif #ifndef MODULE #define MODULE #endif #include #include #include #include #include #include #include #in

kernel_learner的专栏 2192
上一篇: 24.muduo学习笔记之net_SocketsOps.{h&cc}
下一篇: 26.muduo学习笔记之net_Timer.{h&cc}
PartnerLv
博客等级 码龄10年 338粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值