满山的红叶--飘落之时-- 最近接触了点关于用C++写socket的东西,这里总结下. 这里主要是关于TCP的,TCP的特点什么的相关介绍在我另一篇博文里,所以这里直接动手吧. 我们先在windows下写,不过代码可以直接移植到linux下. Visual Studio项目配置及初始化 这里用的版本是2015的.创建了项目之后要配置项目的属性: 在下图箭头处添加ws2_32.lib,不然没办法使用socket相关的函数. 然后在win平台下,使用这个库前需要初始化,因此在main函数中应有: W…
从Linux源码看Socket(TCP)的listen及连接队列 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就来从Linux源码的角度看下Server端的Socket在进行listen的时候到底做了哪些事情(基于Linux 3.10内核),当然由于listen的backlog参数和半连接hash表以及全连接队列都相关,在这一篇博客里也一块讲了. Server端Socket需要Listen 众所周知,一个Server端Socket的建…
RTP标准是采用 UDP 发送,有不少现成的开源库,但不在本文讨论的范围内.UDP 用户数据报,不提供流程,安全传输的功能,但速度快,能提供多播,广播,没有序列号 SEQ ,有 MTU 限制,1500.TCP 传输控制协议,提供流控,SEQ ,重传功能,没有数据长度限制,可以发几 M . 但在使用中还是有很多地方需要注意,否则声音不好听,断断续续或是延时严重. 虽然 TCP 在使用上没有 MTU 限制,但是在真实的2个PC 之音使用 TCP 发送数据,也是被切片的,每次包不能超过 1448 字节…
Socket小白篇-附加TCP/UDP简介 Socket 网络通信的要素 TCP和UDP Socket的通信流程图 1.Socket 什么是Socket Socket:又称作是套接字,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为Socket. Socket是对TCP/IP的协议的封装,Socket本身并不是协议,而是一个调用的接口,只有通过Socket我们才能使用TCP/IP. Socket是和网络紧密相关的,网络上的两个程序一般就是指web服务器和我们的客户端,数据…
从Linux源码看Socket(TCP)的accept 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核). 一个最简单的Server端例子 众所周知,一个Server端Socket的建立,需要socket.bind.listen.accept四个步骤. 今天,笔者就聚焦于accept. 代码如下: void st…
一.分布式消息总线 在很多MIS项目之中都有这样的需求,需要一个及时.高效的的通知机制,即比如当使用者A完成了任务X,就需要立即告知使用者B任务X已经完成,在通常的情况下,开发人中都是在使用者B所使用的程序之中写数据库轮循代码,这样就会产品一个很严重的两个问题,第一个问题是延迟,轮循机制要定时执行,必须会引起延迟,第二个问题是数据库压力过大,当进行高频度的轮循会生产大量的数据库查询,并且如果有大量的使用者进行轮循,那数据库的压力就更大了. 那么在这个时间,就需要一套能支持发布-订阅模式的分布式消…
基于.NET Socket Tcp的发布-订阅框架 一.分布式消息总线 在很多MIS项目之中都有这样的需求,需要一个及时.高效的的通知机制,即比如当使用者A完成了任务X,就需要立即告知使用者B任务X已经完成,在通常的情况下,开发人中都是在使用者B所使用的程序之中写数据库轮循代码,这样就会产品一个很严重的两个问题,第一个问题是延迟,轮循机制要定时执行,必须会引起延迟,第二个问题是数据库压力过大,当进行高频度的轮循会生产大量的数据库查询,并且如果有大量的使用者进行轮循,那数据库的压力就更大了. 那么…
Oracle建立连接的过程 如果我们想登陆数据库并在数据库中真正做事情,就必须先建立连接,首先我会介绍如何建立连接,再介绍建立连接的两种方式的原理,以及建立连接的过程中在客户端和服务端都做了些什么. 如何连接到数据库 客户端和服务端主要是通过TCP/IP协议建立连接的.对于服务端而言,服务端在连接过程中主要关心的是怎么处理请求的问题,Oracle服务器端一定会在固定的地址上启动一个监听器用于专门处理连接请求的进程或者是线程. 对于客户端而言我们需要知道服务端的IP地址,监听器的端口以及服务名,并…
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不能理解Web短连接(就是最常见的HTTP通信了)跟长连接(主要指TCP.UDP协议实现的socket通信,当然HTML5里的Websocket协议也是长连接)的区别,导致写即时通讯这类系统代码时往往找不到最佳实践,搞的一脸蒙逼. 本篇我们先简单了解一下 TCP/IP,然后通过实现一个 echo 服务…
首发安全客 如何基于Python写一个TCP反向连接后门 https://www.anquanke.com/post/id/92401 0x0 介绍 在Linux系统做未授权测试,我们须准备一个安全的渗透环境,通常第一件事就是安装虚拟机.且在攻击阶段中还需要对受害系统进行控制.常见的后门大多数是利用Metasploit生成,而目前反病毒产品遇到Metasploit文件签名的程序就会添加特征库作为查杀对象,所以开发出自己的后门程序非常必要. 这篇文章将介绍如何写一个具有反向连接功能的后门. 反向连…