自己今年毕业,但工作时间估计一年多了,跟网络开发没有关系,只是自己爱好而已。自己写过各种各样的程序,大多数是网络模拟程序,对服务器开发有有一定的了解。稍微列觉一写自己写过项目也好说明自己什么水平吧。
1:csdn自动评分软件(合理刷分)。(源代码分享在网上,自己可以百度)
2:百度指数获取(c#开发,破解最新版swf加密)。 这个给卖给一个朋友。这个估计有需求人可能非常感兴趣,但暂时不会发布源代码,毕竟算是一个商业的东西。
3:SSH 全自动软件(弱口令扫描, 自动上传*,开机启动 一条龙)。 (以后尽量不做这些软件,毕竟不太好)。
4:今目标自动签到(现在一些用户在使用这个,估计这周会更新一个版本出来)。
5:百度,有道在线翻译软件(很久之前写的,那时候自己简单解析一下,取出内容,并没有解析json文件。)现在在做google翻译 ,解析了json文件,难度不大,但可以有钱可以拿。
6:word操作c++封装类(这个很久之前写在博客园,结果后面好多人加我,可能这方面知识太少了吧,其实我自己感觉明白了架构库用起来还是比较简单)。
网络编程一般分为2个对象考虑:客户端 和服务器段。 网络编程也就放在这2个方向。(自身感觉可以分为3个对象,在抓包软件时候可以考虑分成3种,感觉挺好的。)
下面都是自己经验分析得出来
客户端编程:通过各种协议与服务器进行交互,业务。
比喻我们用http协议 模拟论坛登录,自动发帖,自动签到。 什么yy协议进行什么刷的。QQ机器人,聊天软件(客户端),文件传送(客户端)。
所以一般情况下客户端根本不考虑并发,和吞吐量。侧重点在与服务器交互上 (各种协议)+ 业务上。如果通信上你们公司有现在,基本你只要考虑业务即可。
针对业务不一样,客户端考虑的情况也不一样, 比喻你用http协议,基本考虑就是和web打交道,一般来说客户端都是进行模拟,减少人工操作。这个时候可能要考虑验证码识别,这个确实是一个难题,有专门的研究这个,自己遇到验证码识别都是协议可能获取到。。所以没有使用到这样库,或者自己开发这样识别的程序。还一个就登录问题,主要是密码加密,一般来说都是用js进行加密。 所以有时候用到c++ js. (也可以别的语言,只是我一般都是用c++开发)。 还可能考虑编码的问题这个时候就能要一个编码库。
我的自己网路库基本包含:c++ 调用Js, 编码库, http模拟。现在还差一个验证码识别了,不然的话装备就齐全了。
客户端是我们最容易接触到的,也是我们最容易学习,也是感觉最有意思。比服务器开发感觉更有意思。上面客户端东西没有说全,只是举一个例子,遇到业务问题也个不一样。
服务器编程:主要协议解析,并发,吞吐量,业务。
这个我最没有资格说了,因为接触不到,最多写一个模拟的http服务器,自己当初写过,写很ugly。因为很难有那种实际情况开发出一个服务器,所以基本上只能通过理论得出来,不过可以分析那些开源的网络库得出一些东西来。
这里感觉Libevent蛮不错,学习一下事件驱动。reactor模型还是不错。
基本自己我感觉所有高效网络库基本差不多这个原理,只是一些细节不同而已。感觉linux 多线程网络编程还可以,只能说可以,对于新手没有帮助,有一定网络编程经验还是不错。
业务不一样,服务器重点也不一样,ftp 主要吞吐量, time服务器器,主要高并发。 还有可能都要的。。。
我感觉还有一种对象是从客户端和服务器端提取出来 传输端,自己胡编,切勿较真。
传输端:一般用于保存客户端和服务器一些信息。。
一般捕包软件会考虑,典型 http捕包神器 fddler 就是用这个3个方面来写代码。不要问我代码,c# 可以用工具反编译。。。
因为捕包软件类似人妖。。。。。。。
数据包拦截软件。。
工作方向:
客户端:
1:各种协议客户端开发。什么抢小米的软件,游戏客户端协议。。,等等。。。(不喜欢小米那种模式,不过他做很成功)。
2:数据包拦截。(驱动开发比较好,应用层也可以拦截,基本都是注入后挂钩几个那几个函数。)。
服务端:
游戏的服务器 (估计很赚钱,)
各种协议高效服务器。。。
。。。。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上面都是自己胡思乱写的,如果你是大牛,请不要奸笑。你们可以随意评论指点一下。。。