![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 84
qq_20853741
这个作者很懒,什么都没留下…
展开
-
设置线程分离的方法
线程分离的设置方法(1)在创建线程thread_create函数参2时设置线程分离(2)创建完线程后,通过pthread_detach函数设置线程分离原创 2022-11-29 17:26:03 · 1555 阅读 · 1 评论 -
ioctl()函数简单用法
ioctl()函数简单用法原创 2022-09-13 19:13:07 · 704 阅读 · 0 评论 -
网上最全的套接字socket
socket ,AF_PACKET套接字原创 2022-06-30 21:36:17 · 983 阅读 · 0 评论 -
linux下获取网络接口信息
在linux下,我们知道可以通过ifconfig获取mac地址和ip地址等相关信息,如何在程序中获取这些网络信息,我们就需要使用到Linux系统所提供的一个函数ioctl(),iotec函数是对设备的i/o通道进行管理的函数。ioctl这个函数,可以用来对特殊文件的基础设备参数进行操作,它们可以完成与打开文件描述符相关联的控制功能。在程序启动时获得主机上所有接口的信息: 接口的地址、接口是否支持广播、是否支持多播等等。成功返回0,出错则返回-1。其中,struct ifreq 就是用来存储返回的接口相.原创 2021-08-12 11:28:50 · 1281 阅读 · 0 评论 -
struct sockaddr和struct sockaddr_in区别
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。一、sockaddrsockaddr在头文件#include <sys/socket.h>中定义,sockaddr的缺陷是:sa_data把目标地址和端口信息混在一起了,如下:struct sockaddr { sa_family_t sin_family;//地址族 char sa_data[14]; //14字节,包含套接字中的目标地址和端口信息 ...原创 2021-06-14 17:34:01 · 2546 阅读 · 0 评论 -
Wireshark使用方法
Wireshark 基本语法,基本使用方法,及包过滤规则:1.过滤IP,如来源IP或者目标IP等于某个IP例子:ip.srceq192.168.1.107orip.dsteq192.168.1.107或者ip.addreq192.168.1.107//都能显示来源IP和目标IPLinux上运行的wireshark图形窗口截图示例,其他过虑规则操作类似,不再截图。ip.src eq 10.175.168.182截图示例:提示: 在Filter编...原创 2021-05-11 23:06:20 · 378 阅读 · 0 评论 -
socketpair函数用法
socketpair()函数的声明:#include <sys/types.h>#include <sys/socket.h>int socketpair(int d, int type, int protocol, int sv[2]);socketpair()函数用于创建一对无名的、相互连接的套接子。如果函数成功,则返回0,创建好的套接字分别是sv[0]和sv[1];否则返回-1,错误码保存于errno中。基本用法:1. 这对套接字可以用于全双工通信,每一个..原创 2021-04-02 16:07:44 · 1074 阅读 · 0 评论 -
poll深度解读
int poll (struct pollfd *fds, size_t nfds , int timeout);struct pollfd {int fd; /* 文件描述符 */short events; /* 等待的事件 */short revents; /* 实际发生了的事件 */};#include <sys/poll.h>int poll(struct pollfd *ufds, unsigned int nfds, int timeout);s...原创 2021-02-28 21:13:23 · 450 阅读 · 0 评论 -
getaddrinfo解读
getaddrinfo解读getaddrinfo 提供独立于协议的名称解析函数原型: #include<sys/types.h> #include<sys/socket.h> #include<netdb.h> int getaddrinfo(constchar*node,constchar *service, const struct addrinfo *hi...原创 2021-02-28 20:18:26 · 578 阅读 · 0 评论 -
socket通信,客户端绑定本地ip为INADDR_ANY、端口为0的意义
socket绑定的ip为INADDR_ANY 的说明socket INADDR_ANY 监听0.0.0.0地址 socket只绑定端口让路由表决定传到哪个ip其中INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。如果指定ip地址为通配地址(INADDR_ANY),那么内核将等到套接字已连接(TCP)或已在套接字上发出数据报时才选择一个本地IP地址。一般情况下,如果你要建立网络服务器,则你要通知服务器操作系统:请在某地址 xxx.原创 2021-02-25 16:55:58 · 7887 阅读 · 2 评论 -
Socket学习
1. Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访问的端口号。(3)连接:指两个进程间的通讯链路。(4)半相关:网络中用一个三元组可以在全局唯原创 2021-02-25 16:51:25 · 154 阅读 · 0 评论 -
setsockopt()函数和getsockopt()函数
setsockopt()函数功能介绍int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen);功能描述:获取或者设置与某个套接字关联的选项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示原创 2021-02-25 16:43:50 · 845 阅读 · 0 评论 -
Redis源码学习(二)-网络通信(anet.c)
有了上个博客(网络编程addrinfo结构体与getaddrinfo函数_qq_20853741的博客-CSDN博客)的铺垫,理解Redis网络通信源码就简单多了! anet.c是redis对网络通信(socket)的简单封装和一些状态设置的封装。状态设置主要包括socket连接的阻塞性、tcp的保活定时器的设置、设置发送缓冲区、tcp的Nagle算法设置、设置发送超时时间、地址重用的设置和设置一、socket的状态设置 socket的状态选项设置主要通过setsockopt...原创 2020-12-23 09:35:47 · 482 阅读 · 0 评论