套接字asio

本地套接字 [补档-2023-07-24]

本地套接字 7-1简介 ​ 在Linux系统下,可以使用本地套接字(Unix域套接字)进行进程间通信。本地套接字是一种特殊类型的套接字,用于在同一主机上的进程之间进行通信。 7-2 创建本地套接字服务器的流程 ​ 可以使用TCP或UDP的方式来实现通信,使用TCP就得遵循TCP的流程,UDP就要遵循 ......
套接字 2023 07 24

由于系统缺少足够的缓冲区空间或队列已满,无法对套接字执行操作。

由于系统缺少足够的缓冲区空间或队列已满,无法对套接字执行操作。 其实这个是由于操作系统的tcp连接被用完了,dkron不断打开关闭连接,有些操作完成后没有正常关闭,导致大量连接处于CLOSE_WAIT状态,直到计算机再也找不到可供使用的端口使用命令:netstat -a 查看,会发现大量的tcp已连 ......
套接字 缓冲区 队列 系统 空间

C# TcpClient异常 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

//C# TcpClient抛出异常Exception thrown: 'System.Net.Sockets.SocketException' in System.dll由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。经查,w ......
套接字 数据 TcpClient 地址 sendto

两个线程共享一个套接字,其中一个线程使用sendmsg函数不断发送消息到该套接字,另一个线程使用recvmsg函数不断接收该套接字的消息,并打印出来的功能

以下是使用C语言写的一段代码,实现两个线程共享一个套接字,其中一个线程使用sendmsg函数不断发送消息到该套接字,另一个线程使用recvmsg函数不断接收该套接字的消息,并打印出来的功能 点击查看代码 #include <stdio.h> #include <stdlib.h> #include ......
套接字 线程 函数 不断 消息

解决.net core开发过程中端口总是无缘无故被占用的问题,提示SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试。修改端口还无效

先给出原因和方案: 是Hyper-V每次启动随机保留端口段,导致所要使用的端口被系统保留,导致无法使用的问题 解决方法就是,指定系统保留端口的范围,避开开发时使用的端口即可。powershell 管理员身份使用下面的命令设置。 netsh int ipv4 set dynamic tcp start ......

C/C++ 原生套接字抓取FTP数据包

网络通信在今天的信息时代中扮演着至关重要的角色,而对网络数据包进行捕获与分析则是网络管理、网络安全等领域中不可或缺的一项技术。本文将深入介绍基于原始套接字的网络数据包捕获与分析工具,通过实时监控网络流量,实现抓取流量包内的FTP通信数据,并深入了解数据传输的细节,捕捉潜在的网络问题以及进行安全性分析... ......
套接字 数据 FTP

本地套接字domain的使用

socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要 ......
套接字 domain

boost asio在linux接收不到255.255.255.255的应答

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter https://stackoverflow.com/questions/47829979/how-to-rec ......
255 boost linux asio

基于Boost.Asio实现端口映射器

Boost.Asio 是一个功能强大的 C++ 库,用于异步编程和网络编程,它提供了跨平台的异步 `I/O` 操作。在这篇文章中,我们将深入分析一个使用 `Boost.Asio` 实现的简单端口映射服务器,该服务器能够将本地端口的数据包转发到指定的远程服务器上。端口映射通常用于将一个网络端口上的流量... ......
射器 端口 Boost Asio

19.5 Boost Asio 传输结构体

同步模式下的结构体传输与原生套接字实现方式完全一致,读者需要注意的是在接收参数是应该使用`socket.read_some`函数读取,发送参数则使用`socket.write_some`函数实现,对于套接字的解析同样使用强制指针转换的方法。 ......
结构 Boost 19.5 Asio 19

19.8 Boost Asio 异或加密传输

异或加密是一种对称加密算法,通常用于加密二进制数据。异或操作的本质是对两个二进制数字进行比较,如果它们相同则返回0,如果不同则返回1。异或加密使用一把密钥将明文与密文进行异或运算,从而产生密文。同时,使用相同的密钥进行解密将返回原始的明文数据。在异或加密中,加密和解密使用的是相同的密钥。因此,它是一... ......
Boost 19.8 Asio 19

19.9 Boost Asio 同步字典传输

这里所代指的字典是Python中的样子,本节内容我们将通过使用Boost中自带的`Tokenizer`分词器实现对特定字符串的切割功能,使用Boost Tokenizer,可以通过构建一个分隔符或正则表达式的实例来初始化`tokenizer`。然后,可以使用该实例对输入字符串进行划分。`tokeni... ......
字典 Boost 19.9 Asio 19

19.12 Boost Asio 获取远程进程

远程进程遍历功能实现原理与远程目录传输完全一致,唯一的区别在于远程进程枚举中使用`EnumProcess`函数枚举当前系统下所有活动进程,枚举结束后函数返回一个`PROCESSENTRY32`类型的容器,其中的每一个成员都是一个进程信息,只需要对该容器进行动态遍历即可得到所有的远程主机列表。服务端代... ......
进程 19.12 Boost Asio 19

19.11 Boost Asio 获取远程目录

远程目录列表的获取也是一种很常用的功能,通常在远程控制软件中都存在此类功能,实现此功能可以通过`filesystem.hpp`库中的`directory_iterator`迭代器来做,该迭代器用于遍历目录中的文件和子目录,它允许开发者轻松遍历目录层次结构并对遇到的文件和目录执行各种操作。 ......
目录 19.11 Boost Asio 19

19.13 Boost Asio 发送TCP流数据

Boost框架中默认就提供了针对TCP流传输的支持,该功能可以用来进行基于文本协议的通信,也可以用来实现自定义的协议。一般`tcp::iostream`会阻塞当前线程,直到IO操作完成。首先来看服务端代码,如下所示在代码中首先通过`GetFileSize`读取文件行数,当有了行数我们就可以使用循环的... ......
数据 19.13 Boost Asio TCP

19.6 Boost Asio 文本压缩传输

Base64是一种二进制到文本的编码方案,用于将二进制数据转换为`ASCII`字符串格式。它通过将二进制数据流转换为一系列`64`个字符来工作,这些字符都可以安全地传输到设计用于处理文本数据的系统中。如下代码中我们使用Boost中提供的`base64_from_binary`头文件实现两个函数,其中... ......
文本 Boost 19.6 Asio 19

19.7 Boost Asio 传输序列化数据

序列化和反序列化是指将数据结构或对象转换为一组字节,以便在需要时可以将其存储在磁盘上或通过网络传输,并且可以在需要时重新创建原始对象或数据结构。序列化是将内存中的对象转换为字节的过程。在序列化期间,对象的状态被编码为一组字节,并可以保存或传输到另一个位置。序列化后的字节可以在之后进行反序列化,以将对... ......
序列 数据 Boost 19.7 Asio

20.8 OpenSSL 套接字SSL传输文件

有了上面的基础那么传输文件的实现就变得简单了,在传输时通常我们需要打开文件,并每次读入`1024`个字节的数据包,通过`SSL`加密传输即可,此处的文件传输功能在原生套接字章节中也进行过详细讲解,此处我们还是使用原来的密钥对,实现一个服务端等待客户端上传,当客户端连接到服务端后则开始传输文件,服务端... ......
套接字 OpenSSL 文件 20.8 SSL

20.7 OpenSSL 套接字SSL加密传输

OpenSSL 中的 `SSL` 加密是通过 `SSL/TLS` 协议来实现的。`SSL/TLS` 是一种安全通信协议,可以保障通信双方之间的通信安全性和数据完整性。在 `SSL/TLS` 协议中,加密算法是其中最核心的组成部分之一,SSL可以使用各类加密算法进行密钥协商,一般来说会使用`RSA`等... ......
套接字 OpenSSL 20.7 SSL 20

20.6 OpenSSL 套接字分发RSA公钥

通过上一节的学习读者应该能够更好的理解`RSA`加密算法在套接字传输中的使用技巧,但上述代码其实并不算完美的,因为我们的公钥和私钥都必须存储在本地文本中且公钥与私钥是固定的无法做到更好的保护效果,而一旦公钥与私钥泄密则整个传输流程都将会变得不安全,最好的保护效果是`RSA`密钥在每次通信时都进行变换... ......
公钥 套接字 OpenSSL 20.6 RSA

TCP的通信流程和socket套接字完成服务端和客户端通信

一、TCP是一个面向连接的、安全的、流式传输协议,这个协议是传输层协议。 面向连接:是一个双向连接,通过三次握手建立连接,通过四次挥手断开连接。 安全:tcp通信的过程中,会对发送的每一数据包都会进行校验,如果发现数据丢失,会自动重传。 流式传输:发送端和接受端处理数据的速度,数据的量都可以不一致。 ......
套接字 客户端 流程 客户 socket

20.5 OpenSSL 套接字RSA加密传输

RSA算法同样可以用于加密传输,但此类加密算法虽然非常安全,但通常不会用于大量的数据传输,这是因为`RSA`算法加解密过程涉及大量的数学运算,尤其是模幂运算(即计算大数的幂模运算),这些运算对于计算机而言是十分耗时。其次在`RSA`算法中,加密数据的长度不能超过密钥长度减去一定的填充长度。一般情况下... ......
套接字 OpenSSL 20.5 RSA 20

套接字的拓展及总结

套接字编程 编程实现效果 server: client: 问题及解决方法 问题:出现死循环 猜想:在判断是否接收到客户端请求,即阻塞时,输出的判断信息perror("recvfrom failed\n");误被recvfrom识别成缓冲区输入 if(recvfrom(serfd,buf,sizeof ......
套接字

19.10 Boost Asio 同步文件传输

在原生套接字编程中我们介绍了利用文件长度来控制文件传输的方法,本节我们将采用另一种传输方式,我们通过判断字符串是否包含`goodbye lyshark`关键词来验证文件是否传输结束了,当然了这种传输方式明显没有根据长度传输严谨,但使用这种方式也存在一个有点,那就是无需确定文件长度,因为无需读入文件所... ......
文件 19.10 Boost Asio 19

19.4 Boost Asio 远程命令执行

命令执行机制的实现与原生套接字通信一致,仅仅只是在调用时采用了Boost通用接口,在服务端中我们通过封装实现一个`run_command`函数,该函数用于发送一个字符串命令,并循环等待接收客户端返回的字符串,当接收到结束标志`goodbye lyshark`时则说明数据传输完成则退出,客户端使用`e... ......
命令 Boost 19.4 Asio 19

19.3 Boost Asio 多线程通信

多线程服务依赖于两个通用函数,首先`boost::bind`提供了一个高效的、简单的方法来创建函数对象和函数对象适配器,它的主要功能是提供了一种将函数和它的参数绑定到一起的方法,这种方法可以将具有参数的成员函数、普通函数以及函数对象转化为不带参数的函数对象。 ......
线程 Boost 19.3 Asio 19

20.4 OpenSSL 套接字AES加密传输

在读者了解了加密算法的具体使用流程后,那么我们就可以使用这些加密算法对网络中的数据包进行加密处理,加密算法此处我们先采用`AES`算法,在网络通信中,只需要在发送数据之前对特定字符串进行加密处理,而在接收到数据后在使用相同的算法对数据进行恢复即可,读者如果有了套接字编程的基础,那么理解这段代码将变得... ......
套接字 OpenSSL 20.4 AES 20

19.0 Boost 基于ASIO网络编程技术

Boost ASIO库是一个基于C++语言的开源网络编程库,该库提供了成熟、高效、跨平台的网络API接口,并同时支持同步与异步两种模式,ASIO库提供了多重I/O对象、异步定时器、可执行队列、信号操作和协程等支持,使得开发者可以轻松地编写可扩展的高性能网络应用程序,同时保持代码简洁、易于维护。在学习... ......
网络编程 Boost 技术 网络 19.0

套接字通信

目录服务器端客户端(由于接口不同,部分函数不同) 服务器端 #include <cstdio> #include<arpa/inet.h> #include<iostream> #include<unistd.h> using namespace std; int main() { printf(" ......
套接字

[转]linux ss 命令 (全称Socket Statistics套接字统计,是iproute2套件中的一个,可替代已停止维护的net-tools包里的netstat)

原文地址:linux ss 命令 - sparkdev - 博客园 ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netst ......
套接字 全称 套件 Statistics net-tools
共200篇  :1/7页 首页上一页1下一页尾页