![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 64
penyunwudong
这个作者很懒,什么都没留下…
展开
-
转:BT协议分析
一 BT系统的组成结构 1 普通的Web服务器: 例如Apache或IIS服务器2 一个静态的种子文件: 即.Torrent文件,采用Bencoding编码3 Tracker服务器: 追踪下载同一文件的用户4 终端用户的Web浏览器:用于下载种子文件5 BT客户端: 例如BitCommet,BitSpirit 二 种子文转载 2009-07-16 08:15:00 · 1229 阅读 · 0 评论 -
基于原始套接字(raw socket)的网络抓包工具
基于raw socket的网络抓包工具1. 原始套接字(raw socket)简介原始套接字可以接收本机网卡上的数据帧或者数据包,利用raw socket可以编写基于IP协议的程序。一般的TCP/UDP类型的套接字只能够访问传输层以及传输层以上的数据,而原始套接字却可以访问传输层一下的数据,所以使用raw socket既可以实现应用层的数据操作,也可以实现链路层的数据操作。1.1 基本原创 2012-08-30 11:47:32 · 13066 阅读 · 0 评论 -
基于libcap的网络包分析问题集锦(http post方式上传文件)
1. 关于http post方式中boudaryContent-type一行中有boundary关键字,=号后面就是boundary的值,如boundary=---------------------------16541483331115---------------------------16541483331115是分隔符,分隔多个文件、表单项。其 中16541483331115原创 2012-08-06 16:06:38 · 1937 阅读 · 1 评论 -
基于IPC的echo server
Linux下使用共享内存和信号量来实现一个echo server。对共享内存的操作使用信号量来控制,类似于生产者和消费者的问题。下面附上server端和client端的代码。Server.c#include #include #include #include #include #include #include #include #include #i原创 2012-08-03 17:05:13 · 858 阅读 · 0 评论 -
基于libcap的网络包分析问题集锦续(http post方式上传文件)
8. 批量上传时,是有多个post包还是只用一个post?答:如果批量上传是以多个表单的方式,如下这种方式批量上传,通过firefox的Httpfox抓包可以看到只有一次POST,每一个文件所处不同的表单,信息在包中用boundary分隔,如问题2中所述。如果是按以下方式上传,就是一个文件打开框里可以选多个文件。这样上传方式,监听到每一个文件对应一个POST,那每一原创 2012-08-09 16:28:34 · 1492 阅读 · 0 评论 -
libcap使用小结
1. 安装下载http://www.tcpdump.org/#old-releases ,我下的libpcap-1.0.0.tar.gz#tar -zxvf libpcap-1.0.0.tar.gz#cd libpcap-1.0.0#./configure#make;make install安装到默认的目录/usr/lib/和/usr/include/2. 使用使用原创 2012-08-03 17:07:21 · 5352 阅读 · 0 评论 -
转 eMule源代码解析(五)
转 eMule源代码解析(五)emule中的Kademlia代码总体描述当emule中开始使用Kademlia网络后,便不再会有中心服务器失效这样的问题了,因为在这个网络中,没有中心服务器,或者说,所有的用户都是服务器,所有的用户也是客户端,从而完完全全得实现了P2P。接下来讲针对emule中的Kademlia网络进行分析,会有一节进行原理方面的分析。另外的几节将会根据转载 2009-07-12 12:06:00 · 1358 阅读 · 0 评论 -
转 eMule源代码解析(四)
转 eMule源代码解析(四)emule中的信誉机制信誉机制在P2P系统中有非常重要的作用。为了使用户更加愿意共享自己的资源,需要有一些机制能够让对整个P2P系统贡献更大的用户有更多的激励。在emule中,激励机制的设计方案是tit-for-tat这种最直观的方案。这种方案的意义就是最简单的如果别人对你好,那么你也对别人好。下面看实际的实现。CClientCredits转载 2009-07-12 12:05:00 · 835 阅读 · 0 评论 -
转 eMule源代码解析(三)
转 eMule源代码解析(三)搜索信息集-CSearchListCSearchList是emule中的搜索列表,掌管emule中所有的搜索请求。CSearchFile是这个列表中的元素,代表了一次搜索的相关信息。它们的关系和之前描述的已知文件和已知文件列表有一些类似的地方。CSearchList的主要任务就是对其一个叫做list的类型为CSearchFile列表的内部变转载 2009-07-12 12:04:00 · 947 阅读 · 0 评论 -
转 eMule源代码解析(二)
eMule源代码解析(二)(from:http://hi.baidu.com/elseif/blog/item/d94998f9d977e258252df2c1.html)1,分块机制——正确传输资源的保证继续解析CKnowFile类为了加快内容分发的速度,分块处理是一种简单有效的方法。emule中对每个文件都进行了分块处理。另外分块还有一个好处就是如果保留了每一分块的h转载 2009-07-12 12:03:00 · 1038 阅读 · 0 评论 -
转 emule源代码解析(一)
转 emule源代码解析(一)(from:http://hi.baidu.com/li_guotao/blog/item/c49c233868013627b8998fae.html)eMule的官方首页上写着:2002年05月13日 一个叫做 Merkur 的人,他不满意原始eDonkey2000客户端并且坚信他能够做的更好,所以他开始制作。他聚集了其它开发人员在他的周围,转载 2009-07-12 12:01:00 · 1091 阅读 · 0 评论 -
转:IPv6下网络编程步骤(linux)
大家都知道,随着互联网上主机数量的增多,现有的32位IP地址已经不够用了,所以推出了下一代IP地址IPv6,写网络程序的要稍微改变一下现有的网络程序适应IPv6网络是相当容易的事。对于我们来说就是IP地址变化了,所以程序里在用到IP地址的地方做相应的改变就可以了。记住:主要是改变程序里设置IP地址和端口等部分的代码。服务器端源代码如下: #include #include #inc转载 2009-07-20 20:21:00 · 984 阅读 · 0 评论 -
服务端 write时,收到RST响应(对端socket中断),导致服务器进程关闭
客户端申请下载文件,在下载过程中时,客户端终止程序(ctrl+c),服务器接着发送数据,根据TCP协议的规定,会收到一个RST的响应,服务端再往这个socket写数据时,系统会发出一个SIGPIPE信号给进程,通知进程这个连接已经断开,根据信号的默认处理规则SIGPIPE信号的默认执行动作是终止、退出,所以服务器会退出,因此会出现服务器在未提示错误的情况下进程就退出了。为了不让服务器退出,可以把S原创 2012-09-07 12:39:47 · 2196 阅读 · 0 评论