里面是客户端和服务端会共同需要的代码,这样就不用同时维护两份代码了。当然,编写的时候也需要考虑两个平台兼容的问题了。
简单实现的一个网络库,只有几百行代码,也不知道能不能称之为库
,通过宏定义区别客户端和服务端的部分。因为服务端使用epoll
模型,但是windows
没有这个模型。那么客户端目前选择select
,因为对于客户端来说似乎请求数量并不会很大。再者epoll
和select
结构上比较相似,比较容易使用宏区分。
是一个简单的线程池,不过这次好像用不到线程池。另外fetch
任务的地方其实有个bug
,不过不影响其正常工作。
是客户端了,使用vs
开发,建立工程。将来也许会考虑同时支持linux
,也就是client
文件夹下有sln
通过vs
直接能够编译,同时也有Makefile
通过Linux
直接make
就能出二进制文件。不过服务端目前没有考虑兼容windows
,因为我也没有windows
服务器。不过如果只是通过简单的修改就能兼容windows
的话,也未尝不可。最后才会去做这个事情。
服务端,直接make
就能得到二进制文件。未来会介绍一下其工作原理,但是现在还没有开发完成。
完成目录调整跑通客户端加上启动参数 指定主机和端口好像客户端指针出现了异常,导致发出了错误的包,而且好像还很严重。dump出来的是二进制数据,是个线索[功能]
conf
的开发 (目前需求并不大,通过命令行参数够用了)[功能]
客户端密码认证[功能]
代理列表获取 这里将会简单支持http
能够通过网页直接获取到客户端的状态[功能]
管理输出的日志[功能]
登录错误提示[BUG]
客户端会出现接受结束的问题 !!!最高优先级!!![BUG]
服务端莫名其妙的崩掉了[BUG]
非法连接导致出现服务端拒绝服务[优化]
断线重连,能保持状态就更好了[优化]
客户端,remoce_hp()
之后如果再接收到sid
将会再添加删除一次梳理服务端各个对象之间的关系,归属关系理清楚[BUG]
服务端记录所有poll
里面的对象,以便在关闭程序或者重启的时候能够把内存清理干净[BUG]
浏览器可能发起两次请求,导致客户端内存泄漏