
linux操作系统:网络
文章平均质量分 70
记录 关于linux系统 网络相关的学习记录
z_stand
远离颠倒梦想,究竟涅槃
展开
-
通过 RDTSC 指令从 CPU 寄存器中直接获取系统时钟
rdtsc 简单获取 os 系统时钟原创 2022-01-14 23:35:48 · 2131 阅读 · 0 评论 -
Linux 下获取本机所有网卡 以及 网卡对应ip 列表
获取本机网卡名称列表 以及 对应的ip 地址转载 2021-12-11 10:56:56 · 1645 阅读 · 0 评论 -
从 SSL&TLS 的底层实现来看 网络安全的庞大复杂体系
1. 当前http 协议通信的问题?2. SSL & TLS 协议的基本介绍和历史演进?3. 然后从 它们的实现过程 来看 https 如何通过 SSL&TLS 解决http 的问题?原创 2021-07-10 19:00:34 · 541 阅读 · 3 评论 -
手把手教你 用C++实现一个 可持久化 的http_server
一个 支持持久化的httpserver 实现原创 2021-06-15 13:59:48 · 1520 阅读 · 0 评论 -
网卡的bond技术
原创 2020-01-05 11:12:44 · 548 阅读 · 0 评论 -
C语言网络编程:多路IO select实现多客户端
文章目录阻塞式的服务器程序多线程服务器程序非阻塞式服务器程序基于事件响应的服务器程序事件响应服务器程序的实现`select`阻塞式的服务器程序我们接触过最多的最基础的网络通信模型为TCP/UDP通信模型,以下为TCP通信模型的基本流程C语言网络编程:TCP客户端实现但是以上过程中每个通信函数都是阻塞的,而且建立连接之后的数据接收发送同样是阻塞形式的。send无法发送时只能继续阻塞,recv...原创 2019-10-19 14:11:18 · 2040 阅读 · 1 评论 -
C语言网络编程:TCP实现多线程实现多客户端
TCP通信的编程模型如下:TCP通信是必须要有一个服务器,通过accept函数与客户端socket进行三次握手连接创建的通信描述符与客户端进行数据传输。此时可以将accept函数的连接设置为多线程形式,轮训监听,每获取到一个客户端的连接,则创建一个子线程专门用于和该客户端进行通信。实现代码如下:server.c#include <stdio.h>#include <...原创 2019-10-17 00:00:25 · 10213 阅读 · 0 评论 -
C语言网络编程:UDP通信实现
UDP描述UDP的特点:udp 协议是一种无链接的不可靠传输协议,且UDP每次发送到分组数据大小都是固定的,它的主要特点如下:不建立连接没有应答机制不会根据网络状况的好坏调整分组数据的大小...原创 2019-10-16 01:05:50 · 4311 阅读 · 0 评论 -
C语言网络编程:TCP客户端实现
文章目录客户端通信步骤为什么客户端没有bind和listen客户端connect函数介绍局域网内客户端和服务器通信代码实例客户端通信步骤根据基本TCP网络通信编程模型我们可以知道客户端的实现主要有几个步骤socket创建客户端通信的套接字文件,并指定通信的协议族和数据类型使用connect主动向服务器发起连接请求,与服务器的accept实现三次握手建立连接。连接成功之后客户端可以通过...原创 2019-10-15 13:02:57 · 3862 阅读 · 0 评论 -
C语言网络编程:close或者shutdown断开通信连接
这里在主要通过实例进行描述close函数在网络编程中的使用TCP编程模型中客户端或者服务器只要主动通过close发起断开连接的请求,则通信连接可以中断。可以通过在主进程中抓取通信端的断开信号,比如SIGINT,在信号处理函数中对该通信文件描述符进行关闭。如下代码#include <stdio.h>#include <stdlib.h>#include <u...原创 2019-10-15 00:30:28 · 2495 阅读 · 0 评论 -
C语言网络编程:recv函数详解
函数描述头文件 #include <sys/socket.h>ssize_t recv(int sockfd, void *buf, size_t len, int flags);函数功能:接收对方发送当数据可以同样使用recvfrom函数来接收数据ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,s...原创 2019-10-15 00:30:56 · 23362 阅读 · 2 评论 -
C语言网络编程:send函数详解
函数描述#include <sys/socket.h>ssize_t send(int sockfd, const void *buf, size_t len, int flags);函数功能:向对方发送数据其实也可以使用sendto函数:ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, c...原创 2019-10-15 00:31:05 · 20377 阅读 · 0 评论 -
C语言网络编程:accept函数详解
文章目录前言函数描述代码实例如何得到客户端的IP 和 端口号前言当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的主动描述符转为被动描述符进行监听之后,接口accept通过三次握手与客户端建立连接TCP 编程模型如下:函数描述#include <sys/socket.h>int accept(i...原创 2019-10-15 00:31:26 · 15177 阅读 · 6 评论 -
C语言网络编程:listen函数详解
文章目录前言函数描述代码实例TCP服务器为什么调用listen前言根据TCP编程模型中我们可以看到之前的socket和bind接口是tcp服务器在为接收客户端的链接做准备,保证tcp的面向字节流,面向连接的可靠通信服务正常进行。接下来的listen端口则为我们进行三次握手与客户端进行链接的接口。TCP编程模型如下函数描述#include <sys/socket.h>i...原创 2019-10-15 00:31:35 · 10248 阅读 · 1 评论 -
C语言网络编程:bind函数详解
文章目录函数功能函数头文件函数使用函数参数函数举例为什么需要bind函数服务器如何知道客户端的ip和端口号htons函数`htons`兄弟函数`htonl`,`ntohs`,`ntohl`为什么要进行端口的大小端序的转换`inet_addr`函数函数功能bind API能够将套接字文件描述符、端口号和ip绑定到一起注意:绑定的一定是自己的 ip和和端口,不是对方的;比如对于TCP服务器来说...原创 2019-10-15 00:31:43 · 16830 阅读 · 2 评论 -
C语言网络编程:socket函数
函数描述头文件 <sys/types.h> <sys/socket.h>函数使用int socket(int domain, int type, int protocol);函数功能:创建一个通信的终点,并返回一个文件描述符来代表通信的终点函数参数:a. domain 代编当前创建的socket文件描述符使用的是哪一个协议族进行通信,这些协议族都包...原创 2019-10-15 00:31:54 · 2732 阅读 · 0 评论 -
C语言网络编程:TCP编程模型
编程模型TCP编程模型如下TCP服务器的工作过程如下:服务器创建一个专门的“文件描述符”来监听来自客户端的“三次握手”,然后建立链接链接建立成功后,服务器会分配一个专门的“通信文件描述符”,用于实现与该客户端的通信以上通信模型是由于TCP本身的特点:面向连接的,可靠的,字节流通信方式通信过程服务器:创建套接字,返回套接字的文件描述符skfd = socket()将套接字文...原创 2019-10-15 00:32:03 · 909 阅读 · 0 评论