转自:http://www.itkee.com/developer/detail-318.html 今天在家里闲来无事,实践了一下Erlang的Socket的功能.记录一下在过程中遇到的一些问题,以及编码的步骤. 1. 对于测试用例的介绍:Erlang编写TCP服务器.只做一次Accept,接收到Socket 之后开始收数据.用python编写Client,连接到服务器上:发送LEN(int)+CMD(short)+BODY(binary)格式的数据 包.用于熟悉Erlang如何做拆解包,数据读…
简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全 在发送端,一次发送200k个字节,在接收端,一次接收200k个字节, 但是在接收端,经常会出现 socket.receive 接收不全的情况 , 偶尔接收的包也是正常的,用Wireshark抓包发现,每次发送都分成…
NetworkComms网络通信框架序言 本文基于networkcomms2.3.1开源版本  gplv3协议 我们先回顾一个 c#网络通信框架networkcomms内核解析之六 处理接收到的二进制数据 中,主程序把PacketBuilder 中的数据交给核心处理器处理的过程 //创建优先级队列项目 PriorityQueueItem item = new PriorityQueueItem(priority, this, topPacketHeader, packetBuilder.Read…
udt是通过udp进行端到端可靠传输的一个协议,有其默认拥塞控制算法. 之前ubuntu下wireshark的版本是1.10,不能直接解析udt数据包[1],升级到最新的2.0.0即可过滤udt数据包 升级wireshark    下载wireshark源码,目前下载的是wireshark-2.0.0,解压后其中INSTALL文件中写有安装步骤. 1)首先需要检查glib和gtk的安装.安装gtk的步骤如下. sudo apt-get install libgtk-3-dev sudo apt-…
分享一个写扫描器和POC时的小技巧. 有时候有的漏洞需要一些特殊的数据包,比如说畸形的HTTP头.畸形的Multipart.畸形的chunk包等,此时用编程语言自己的HTTP库可能构造不出这种数据包,此时通常我们需要用原生socket发包,比如: import socket p = b'''GET /get?a=1 HTTP/1.1 Host: httpbin.org User-Agent: raw-socket\x00\x01aaa '''.replace(b'\n', b'\r\n') wi…
一:什么是socket大数据包发送问题 socket服务器端或者客户端在向对方发送的数据大于对方接受的缓存时,会出现第二次接受还接到上次命令发送的结果.这就出现象第一次接受结果不全,第二次接果出现第一次结果. 比如send 1900 数据,recv 只接受1024.多于数据900放在缓存区里,第二次命令来的时候,调用send会先把900发回去,在把新数据放到缓存区,等到1024在系统会自动发送过去. 发送数据,一是缓存区满,二是超时 解决办法: 在发送数据前,计算发送数据的大小,把大小发给对方.…
相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/Instant_Messaging_and_Presence_Protocol https://www.trillian.im/impp/ http://en.wap.wikipedia.org/wiki/Presence_and_Instant_Messaging http://zh.wikiped…
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=25876834&id=3300393 因为在本人工作中,服务端Erlang和客户端的flash通信都是发送二进制数据(协议)来通信,Erlang处理起来二进制数据真的很方便,在空余时间查看和翻译了Erlang的二进制相关一些说明文档,当然里面也有根据自己的经验和知识理解的地方. 在二进制解析部分,其实还有很多好的例子.还有就是Erlang的二进制实际应用的例子,下次会再分享的,…
  二进制数据包的解析一般是借助C#等语言,在通讯程序中解析后形成字段,再统一单笔或者批量(表类型参数)提交至数据库,在通讯程序中,存在BINARY到struct再到table的转换. 现借助CLR提供基本的INT2HEX(小端)等函数,在SQL中直接解析数据包.   基本函数 [Microsoft.SqlServer.Server.SqlFunction(Name = "Time2UTCBin")] public static SqlBinary Time2UTCBin(DateTi…