socket
飞鸟真人
这个作者很懒,什么都没留下…
展开
-
linux使用ICMP实现ping和traceroute
测试环境:ubuntu20.04/** * @file sockIcmp.cpp * @author robinfox (390017268@qq.com) * @brief * @version 0.1 * @date 2022-05-16 * * @copyright Copyright (c) 2022 * * gcc sockIcmp.cpp -lpthread -lstdc++ -w -g -o icmp */#include <stdio.h>#in原创 2022-05-17 14:19:12 · 356 阅读 · 0 评论 -
c++ 使用gethostbyname_r解析域名
前一帖子,实验了如何使用adns库实现解析,用起来还是麻烦,直接使用系统函数,更直接:#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/ip_icmp.h>#include <arpa/inet.h>#include <sys/types.h>#i原创 2022-05-13 12:38:38 · 992 阅读 · 0 评论 -
c++ 调用adns库实现DNS解析(全网唯一正确示例)
可以使用一个adns的c库,版本是1.6,官方地址:adns - advanced, alternative, asynchronous resolver下载地址是:http://www.chiark.greenend.org.uk/~ian/adns/ftp/adns-1.6.0.tar.gz我实验环境是ubuntu20.04解压,并编译tar xzvf adns-1.6.0.tar.gzcd adns-1.6.0./configuremake我没有make install原创 2022-05-12 10:25:45 · 1170 阅读 · 0 评论 -
高并发rpc的http1.1客户端
在上传信息的应用中,或者RPC应用中,http client很重要,但是curl满足不了需求,所以需要一个更快的客户端,于是有了LibNet原创 2022-03-10 21:02:59 · 2509 阅读 · 1 评论 -
使用http1.1协议做高效RPC (15W tps)
http1.1协议支持长连接,支持pipelining;1)http头设置keep-alive选项,tcp socket连接服务器后,双方不再轻易断开,这样可以减少建立连接所需要的开销;2)pipelining是服务器支持流水线机制,客户端不需要等待response,而不停的发送request,异步等待应答并解析;在网络时延比较大的情况下,如果使用pipelining机制可以很好的避免网络时延造成的性能下降;但是我所使用的HttpLib客户端是使用同步获取的;即便是Curl在目前的版本也并不支持原创 2022-02-28 15:37:56 · 2698 阅读 · 0 评论 -
reactor 和 proactor
一句话总结区别就是:reactor:能收了你跟俺说一声。proactor: 你给我收十个字节,收好了跟俺说一声。Reactor:libevent/libev/libuv/ZeroMQ/Event Library in Redis主要是异步的IO需要操作系统支持;ProactorIOCP/Boost.Asio...原创 2021-03-20 09:57:44 · 94 阅读 · 0 评论