摘要:
最近用activeX media player做了个播放器,做过的人都知道,几乎没技术含量。在自己无聊的玩弄中,发现这个控件能够解析http、ftp协议,播放互联网的文件资源。现在被困在学校也无事可做,干脆把给这播放器写个服务器,用来播放互联网上的公开资源。 media player的activeX 阅读全文
摘要:
最后一个暑假,因为已经有一个项目在手,不想把自己整得太累,但又不能太闲,于是选择了一个可以拖拖踏踏做的简单事情,做一套端口扫描。这种平时集中精力几天就可以做完的事情,结果真是拖拖踏踏了很久才做完。 进入正题。端口扫描,即是通过一些扫描的手段来探知某些ip的端口情况,主要为探知端口的开放情况与端口的应 阅读全文
摘要:
有个一年没做过题了,最近有骚年反映他们的VirtualJudge无法做POJ的题目,一直都是JudgeError状态。 于是登录到那个VJudge试了试,代码的确一直无法提交成功,他们的服务器发回500错误代码。 试了试自己写的voj内核,果然有问题,又试了一下国内其他的Vjudge都没法交到POJ 阅读全文
摘要:
按照自己以前习惯的套路来说,通信方式与协议的设计应该是放在首位的,然后是服务器、再到客户端(没有美工)。
而自己以前曾经玩到很多的单机游戏,更新版本后,游戏便增加了网络游戏功能。这似乎说明了很多游戏与网络协议之间是相互独立的。甚至网络协议是根据实际的游戏逻辑设计的,而不是游戏根据协议来设计自身的逻辑。
最终决定先把单机的版本做出来。于是制定了如下的开发流程: 阅读全文
摘要:
之前为了自己做一套SSH,先自己实现了一套telnet。但经过这么多天的苦逼,发现以前的工作都是徒劳。ssh的协议很繁杂,核心的内容在于密码算法,而且自己很难在网上找到周全的细节讲解与详细的实现,只有靠自己刷RFC和问大神还有就是靠强X我的服务器艰难地完成。 现计算了下时间,自己做SSH耗费了进两个 阅读全文
摘要:
ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法。在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算法)。本文就以diffie-hellman-group-exchange-sha256为例,详尽地讲 阅读全文
摘要:
过段时间要把以前的OJ换掉,我负责VirtualJudge的部分。需要用C与PHP写一个Linux下的VJudge。
在此之前,将以前写给自己学弟学妹用的OJ离线题库的采集程序改进了一下。支持国内一些知名高校的OJ,为之后VJudge的开发练练手,熟悉下各个OJ的结构,免去以后再在LINUX上进行一些繁琐的测试。
题目的采集没有使用任何OJ的API,直接采取从HTML页面采集数据并处理的方式。下载HTTP文件使用的是WinINet函数集,用起来比CURL还方便。正则表达式使用的ATL库里的regex。题目的储存使用的文件进行储存。别看一个OJ就有几千道题,文件结构访问的速度却是相当地快。因为抓取出来的题目有大量的HTML标签,先要全部去掉非常地困难(一些题目有不同的格式与链接标签,甚至有一些题目是关于标记语言的题目)。因为我现在做的是离线的题库,于是将这些标签保留写来,利用HTML的方式显示我采集的题目。 阅读全文
摘要:
NAT:Network Address Translation,网络地址转换。由于IPv4地址数量十分有限,不可能每一台网络设备都能拥有一个IP。于是NAT技术很好地解决了这个问题。路由设备被ISP分给一个公网地址,路由设备自己生成另外的局域网地址,局域网内部的信息通过路由器的网络地址转换,实现内部网络与外部网络的通信。
对于通常的NAT,当一个内部地址向外部某个网络发送信息:当信息到达NAT设备,NAT设备会首先查询自己的地址转换表。看是否有该内部地址-端口的地址转换表,如果没有,路由器会分配给该地址-端口一个可用的外网端口,并记录在地址转换表中。发送的数据包的源地址会修改为NAT设备的公网地址,端口会变为分配的端口(注意,是直接把IP头部的内容修改了, 阅读全文
摘要:
刚开始做邮件服务器开发,一切都是茫然的。在书上网上都很难找到一套完整的邮件服务器开发教程。在个人的摸索中碰到了很多蛋疼得问题。现终于完成了,将我的开发经验分享给大家。 开发环境:vs2012 mfc 注意事项: 1、 网络环境: 作为邮件服务器,要接收来自互联网的邮件,就得有能映射到外网的服务器。至 阅读全文