
网络/服务器
文章平均质量分 59
崔杰城
C++开发工程师
展开
-
Wireshark不显示Thrift协议
使用Wireshark对thrift协议进行抓包。设置后,可以发现Wireshark里面显示的协议从Tcp变为Thrift了。将“当前”修改为Thrift,然后点击“确定”"右键" -> "Decode As"选择thrift的tcp端口。原创 2024-02-07 23:01:52 · 1013 阅读 · 0 评论 -
Wireshark抓包分析RTMP协议时,出现Unknown问题
编辑 -> 首选项 -> Protocols -> RTMPT,这里Maximum packet size默认是32768。进行rtmp推流时,使用wireshark抓包,发现部分包显示Unknown。将该值调大,比如调成1048576,即可解决该问题。原创 2023-12-03 16:11:42 · 2443 阅读 · 0 评论 -
TCP端口崩溃,msg:socket(): Too many open files
linux系统中运行了一个TCP服务器,该服务器监听的TCP端口为10000。但是长时间运行时发现该端口会崩溃,TCP客户端连接该端口会失败:可以看到进行三次握手时,TCP客户端向该TCP服务器的10000端口发送了SYN报文,但是TCP服务器返回了RST报文。此时我们用netstat命令查看到10000端口没有被监听了,这意味着该端口被关闭或者不在监听中了。原创 2023-10-04 00:15:29 · 1531 阅读 · 0 评论 -
使用thrift编写C++服务器、客户端
我们新建一个目录,将tutorial目录下的tutorial.thrift、shared.thrift和tutorial/cpp目录下的CppClient.cpp(包含客户端的主函数)、CppServer.cpp(包含服务器的主函数)拷贝到该目录中。有thrift的C++例子。在我们之前下载下来的thrift 源码根目录的tutorial/cpp目录下也有thrift的C++例子。》中,我们成功编译出了thrift的库文件,本节我们来编写thrift的C++服务器,客户端。原创 2023-07-16 10:19:46 · 834 阅读 · 0 评论 -
windows下编译libevent源码
》讲述了linux下编译libevent源码的方法,本文讲述其在windows平台的编译。原创 2022-12-19 22:22:35 · 1643 阅读 · 0 评论 -
推荐一个好用的tcp udp调试工具——TCP/UDP Debugger
该工具在Microsoft Store上可以下载安装。安装Microsoft Store的方法可以参考《win10如何安装Microsoft store?》 这个工具基本相当于SocketTool的升级版吧,SocketTool支持的它都支持。强大的地方在于,可以保存要发送的指令到下次使用,而且界面数据呈现更清晰。只是免费版发送指令需要等待10秒,如果要取消限制则需要付费。原创 2022-12-07 23:52:11 · 9546 阅读 · 0 评论 -
TcpDump交叉编译
tcpdump交叉编译原创 2022-10-29 22:22:17 · 1377 阅读 · 0 评论 -
Linux配置libevent开发环境
后,我们在/usr/local/include和/usr/local/lib已经可以分别看到libevent的头文件和库文件了。我们以里面的hello-world.c为例讲解libevent在linux下开发环境的搭建。在libevent解压后的源码目录的sample目录中,存放着官方提供的例子。在 /etc/ld.so.conf.d里面加上/usr/local/lib。把hello-world.c拷贝到我们工程目录。然后就可以运行我们编译出来的程序了。...原创 2022-08-18 07:31:15 · 195 阅读 · 0 评论 -
Linux下编译libevent源码
在选一个较新版本下载,比如:libevent-2.1.12-stable.tar.gz。将下载好的压缩文件通过共享文件夹等方式拷贝到Linux中。原创 2022-08-16 06:02:23 · 1340 阅读 · 0 评论 -
将linux C++ socket代码移植到windows
大部分公司的网络通信(比如服务器)程序都是部署在linux平台上的,但很多时候也是需要支持windows平台。本文讲述移植到windows的方法。下面是一个linux socket通讯的简单例子将其转换为windows平台下的代码如下:简单来讲,就是得要:(1)注释掉linux下的头文件,添加windows下socket的头文件,比如#include #include (2)增加别名:(3)添加静态链接库:#pragma comment(l......原创 2022-06-04 09:40:30 · 3259 阅读 · 1 评论 -
Wireshark搜索/查找字符串失败
在wireshark里面我们经常使用“查找”功能去搜索包(Packets)里面的字符串,如下图所示:但很多时候我们会发现无论怎样设置都没办法搜索到我们想要的字符串。比如上图中的Unmasked data区域里面有"open"这个字符串,但是无论我们是设置"分组详情"还是"分组字节流"都没办法定位到这个Packet。要找到导致该问题的原因,我们要首先了解wireshark里面"分组列表"、"分组详情"和"分组字节流"分别表示什么。简单来讲,设置为"分组列表"后,就是只搜索下图所示的区域:设置为"分组详情"后,原创 2022-06-03 19:25:26 · 4906 阅读 · 0 评论 -
C++FTP客户端库:ftplibpp的使用
一、简述 ftplibpp是一个跨平台的可以提供ftp客户端功能的C++库。它包含可以实现ftp客户端功能的类,支持所有基本的ftp功能以及一些高级功能:如恢复、fxp、ssl/tls加密、支持大文件或符合当今标准的日志记录等。二、使用首先在github上(链接:https://github.com/mkulke/ftplibpp)下载ftplibpp源码。解压后得到如下文件:...原创 2021-05-16 08:50:58 · 8790 阅读 · 15 评论 -
安卓FTP客户端无法连接FTP服务器FineFTP
FineFTP的介绍请见上一篇博文《C++FTP服务器库:FineFTP的编译和使用》。一、问题描述:如题,在windows电脑中通过FineFTP搭建了一个FTP服务器,在安卓手机/设备中运行FTP客户端,然后连接windows上的FTP服务器,结果无法连接。通过Wireshark抓包发现,客户端发送的FTP命令和返回的响应如下所示:问题就出在客户端向服务器发送SYST指令(获取服务器使用的操作系统)时,服务器返回了“215 WIN32”。该响应导致了客户端接下来发送Q...原创 2020-12-12 01:11:25 · 1173 阅读 · 0 评论 -
C++FTP服务器库:FineFTP的编译和使用
一、简述 FineFTP是一个小型的C++FTP服务器库(链接:fineFTP Server),其可以使用在linux和windows平台,用户可以很方便地将其嵌入进自己的C++项目(纯C++项目或者Qt都可以)中来搭建FTP服务器。在应用程序中使用fineFTP很简单。只需创建一个FtpServer对象,添加一个或多个用户并启动服务器。如下所示:#include <fineftp/server.h>#include <thread> int main(...原创 2020-12-07 22:44:29 · 5087 阅读 · 2 评论 -
启动组播流后抓不到包
在某台电脑上启动了组播流,结果在局域网的另一台电脑中无法通过Wireshark抓到相应的包。经过查找发现是虚拟机网卡导致,如下图所示,禁用掉虚拟机网卡VirtualBox Host-Only Network#3后,该问题解决参考文章:《加入组播组时,函数返回成功,但抓包抓不到IGMP,即无法发出IGMP报文》...原创 2020-11-20 22:06:14 · 1708 阅读 · 0 评论 -
EasyDarwin接口的使用——使用C++编写客户端实现与EasyDarwin服务器的交互
EasyDarwin提供了接口供客户端使用,以实现客户端与其的交互。比如,根据EasyDarwin的8.1.0版本的接口文档,有获取推流列表的接口如下所示: 我们可以测试一下上述接口。首先启动EasyDarwin服务器,启动后在浏览器(比如QQ浏览器中)输入“http://127.0.0.1:10008/api/v1/pushers”(格式为:'流媒体服务器所在电脑的I...原创 2019-10-30 20:59:07 · 2491 阅读 · 0 评论 -
局域网中搭建EasyDarwin流媒体服务器后,使用vlc拉流播放失败的解决方法
一、问题描述根据EasyDarwin官网上的教程《ffmpeg推送,EasyDarwin转发,vlc播放 实现整个RTSP直播》操作,在同一台电脑上部署EasyDarwin流媒体服务器,FFmpeg推流端和vlc播放端,发现vlc是可以正常拉流播放的。但是如果当vlc跟流媒体服务器在同一个局域网中,但不在同一台电脑时,vlc拉流播放失败,显示错误如下图所示:二、解决方法首先...原创 2019-10-29 20:39:06 · 4284 阅读 · 0 评论 -
使用FFmpeg将视频推流到nginx,通过vlc拉流播放(通过命令的方式)
安装完FFmpeg,nginx,nginx-rtmp-module,vlc后就可以进行推流、拉流测试了。博主的nginx安装在VMWare的Ubuntu中(安装方法可以参考https://blog.youkuaiyun.com/u014552102/article/details/86599289),ffmpeg和vlc都安装在windows中(win10)。一、nginx配置 首先我们得...原创 2019-01-23 12:13:06 · 22612 阅读 · 6 评论 -
Ubuntu下安装、编译、运行nginx和nginx-rtmp-module。
本文介绍在Ubuntu中安装nginx和其rtmp插件的方法。博主的Ubuntu安装在VMWare里面,版本是14.04。首先启动Ubuntu,切换为root用户,安装nginx所依赖的包。执行命令:sudo apt-get install libssl-devsudo apt-get install libpcre3 libpcre3-dev sudo apt-get instal...原创 2019-01-22 19:06:25 · 3446 阅读 · 0 评论 -
使用FFmpeg将视频推流到crtmpserver,通过vlc拉流播放(通过命令的方式)
安装完FFmpeg,crtmpserver,vlc后就可以进行推流、拉流测试了。博主的crtmpserver安装在VMWare的Ubuntu中(安装方法可以参考https://blog.youkuaiyun.com/u014552102/article/details/86552823),ffmpeg和vlc都安装在windows中(win10)。一、推流 推流,指的是把采集阶段封包好的内...原创 2019-01-20 04:44:53 · 2795 阅读 · 6 评论 -
Ubuntu下安装、编译、运行crtmpserver
一、crtmpserver简介 crtmpserver是一个由C++语言编写的开源的RTMP流媒体服务器。与Adobe公司的商业产品FMS相比,从功能上来说crtmpserver只有FMS的部分功能,与flash player的兼容性也比不上FMS。但如果公司没钱用不起商业的FMS,crtmpserver是一个比较好的替代选择。crtmpserver提供了最常见的RTMP实现。作为开源的高性...原创 2019-01-19 16:18:12 · 1581 阅读 · 0 评论 -
在windows下搭建、配置nginx流媒体服务器,并进行rtmp流的推流、拉流测试
在博主之前的博文《Ubuntu下安装、编译、运行nginx和nginx-rtmp-module》中讲述了在linux(Ubuntu)下搭建nginx流媒体服务器的方法。下面讲述在windows下搭建nginx流媒体服务器的方法,使其支持rtmp协议的直播以及通过配置支持直播状态监听。一、nginx的安装和配置 首先我们下载nginx。在nginx官网上下载的nginx是...原创 2019-09-17 00:10:49 · 17868 阅读 · 14 评论 -
Win10下WireShark没有找到接口
电脑的win10更新后,打开WireShark,突然发现“没有找到接口”,如下图所示:尝试了网上介绍的方法:在http://www.win10pcap.org/download/下载安装Win10Pcap,重启后仍然无法解决该问题。最后在WireShark官网:https://www.baidu.com/link?url=1GCxDCUrOqXNlRsx8y77GvbrWHhai...原创 2019-07-31 21:41:41 · 2733 阅读 · 0 评论