Socket 如何处理粘包

Socket 如何处理粘包 什么是粘包什么是半包? 粘包: 比如发送了AA BB 两条消息,但是另一方接收到的消息却是AAB,像这种一次性读取了俩条数据的情况就是粘包 半包: 比如发送的消息是ABC时,另一方收到的是AB和C俩条消息,这就是半包 为什么会有这种问题呢? 这是因为 TCP 是面向连接的

14.2 Socket 反向远程命令行

在本节,我们将继续深入探讨套接字通信技术,并介绍一种常见的用法,实现反向远程命令执行功能。对于安全从业者而言,经常需要在远程主机上执行命令并获取执行结果。本节将介绍如何利用 `_popen()` 函数来启动命令行进程,并将输出通过套接字发送回服务端,从而实现远程命令执行的功能。在实现反向远程命令执行时,我们可以使用 `_popen(buf, "r")` 函数来执行特定的命令,并将其输出重定向到一个

14.3 Socket 字符串分块传输

首先为什么要实行分块传输字符串,一般而言`Socket`套接字最长发送的字节数为`8192`字节,如果发送的字节超出了此范围则后续部分会被自动截断,此时将字符串进行分块传输将显得格外重要,分块传输的关键在于封装实现一个字符串切割函数,将特定缓冲区内的字串动态切割成一个个小的子块,当切割结束后会得到该数据块的个数,此时通过套接字将个数发送至服务端此时服务端在依次循环接收数据包直到接收完所有数据包之后

14.4 Socket 双向数据通信

所谓双向数据传输指的是客户端与服务端之间可以无差异的实现数据交互,此类功能实现的核心原理是通过创建`CreateThread()`函数多线程分别接收和发送数据包,这样一旦套接字被建立则两者都可以异步发送消息,本章将实现简单的双向交互功能。首先我们需要封装两个函数,这里`RecvFunction`函数用于接收数据,`SendFunction`函数则用于发送数据,这两段代码在服务端与客户端之间是一致的

14.5 Socket 应用组播通信

组播通信是一种基于UDP协议的网络通信方式,它允许发送方将消息同时传递给多个接收方。在组播通信中,发送方和接收方都会加入一个共同的组播组,这个组播组对应一个特定的IP地址,所有加入该组播组的主机都能够接收到发送方发送的消息。组播通信可以有效地减少网络流量和网络负载,因为在传统的点对点通信方式下,每个消息都需要单独传输到每个接收方,而在组播通信中,每个消息只需要传输一次,就可以同时传递给多个接收方。

14.1 Socket 套接字编程入门

Winsock是Windows操作系统上的套接字API,用于在网络上进行数据通信。套接字通信是一种允许应用程序在计算机网络上进行实时数据交换的技术。通过使用Windows提供的API,应用程序可以创建一个套接字来进行数据通信。这个套接字可以绑定到一个端口,以允许其他应用程序连接它。另外,Winsoc...

socket 到底是个啥

哈喽大家好,我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通信连接,socket 的表现方式由四元组(ip地址:端口)组成 那么今天,咸鱼将跟大家打开 sock

[转帖][译] Linux Socket Filtering (LSF, aka BPF)(KernelDoc,2021)

http://arthurchiao.art/blog/linux-socket-filtering-aka-bpf-zh/ 译者序 本文翻译自 2021 年 Linux 5.10 内核文档: Linux Socket Filtering aka Berkeley Packet Filter (BP

[转帖]apr_socket_recv: Connection reset by peer 错误

用ab做性能测试. 并发请求量稍微高一点(200,300以上)就会报apr_socket_recv: Connection reset by peer 的错. 刚开始以为apache服务器设置有问题. 网上一顿找, 结果你也懂的. 按照咱国家特殊国情惯例, 都是同一篇文章考来考去. 最后还是找到一个

[转帖]常见的Socket网络异常场景分析

https://www.cnblogs.com/codelogs/p/16001770.html 简介# 在目前微服务的背景下,网络异常越来越常见了,而有一些网络异常非常模糊,理解什么情况下会导致什么异常,还是有一定难度的,为此我做了大量实验,来复现各种异常场景。 socket状态变迁图# 先快速回

[转帖] 常见的Socket网络异常场景分析

https://www.cnblogs.com/codelogs/p/16001770.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介# 在目前微服务的背景下,网络异常越来越常见了,而有一些网络异常非常模糊,理解什么情况下会导致什么异常,还是有一定难度

[转帖]UNIX SOCKET简介

UNIX Domain SOCKET 是在Socket架构上发展起来的用于同一台主机的进程间通讯(IPC)。它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序列号应答等。只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain SOCKET有SOKCET_DGRAM和SOCKET_

[转帖]MySQL pid 和 socket 文件说明

2021-10-13 11:595110转载MySQL 1 pid-file文件 MySQL 中的 pid 文件记录的是当前 mysqld 进程的 pid ,pid 亦即 Process ID 。可以通过 pid-file 参数来配置 pid 文件路径及文件名,如果未指定此变量,则 pid 文件默认

[转帖]Linux内核 TCP/IP、Socket参数调优

文章系转载,便于整理和分类,原文地址:http://www.360doc.com/content/14/0606/16/3300331_384326124.shtml Doc1: /proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sy

[转帖]容器化 TCP Socket 缓存、接收窗口参数

https://blog.mygraphql.com/zh/notes/low-tec/network/tcp-mem/ 最近需要支持一个单 POD 的 TCP 连接数上 10k 的基础服务(Cassandra)的容器化。需要对其使用的资源(特别是TCP缓存内存),以及对相邻 Pod(同一 work

[转帖]Linux 命令 —— ss 网络 Socket 统计工具

Linux 命令 —— ss 网络 Socket 统计工具 https://shockerli.net/post/linux-tool-ss/ 文章目录 命令格式 命令参数 应用实例 显示 socket 概况 列出所有监听的网络端口 显示 TCP 连接信息 ss 和 netstat 效率对比 参考资

[转帖]提高服务端性能的几个socket选项

https://www.cnblogs.com/charlieroro/p/14140343.html 在之前的一篇文章中,作者在配置了SO_REUSEPORT选项之后,使得应用的性能提高了数十倍。现在介绍socket选项中如下几个可以提升服务端性能的选项: SO_REUSEADDR SO_REUS

[转帖]Unix Domain Socket– IPC通信机制

什么是Unix Domain Socket 基于socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC 更有效率 : 不需

[转帖]tcp、http和socket的区别

https://www.jianshu.com/p/88d69454bdde 一:tcp协议 tcp协议属于传输层协议(UDP也属于传输层协议,但是UDP协议是无状态的)。建立一个TCP连接需要三次握手,断开一个TCP连接需要四次挥手。手机能够使用联网功能,是因为手机底层实现了TCP/IP协议,使用

Python使用socket的UDP协议实现FTP文件服务

用Python的socket,使用UDP协议实现一个FTP服务端、FTP客户端,用来实现文件的传输。在公司内网下,可以不适用U盘的情况下,纯粹使用网络,来实现文件服务器的搭建,进而实现文件的网络传输。同时用来理解Python的socket使用。