杨培文

上网登录是怎么写出来的

这个问题十分复杂,我们首先看看我们为什么要去写上网登录:

我们可以看到,官方版(下载地址)大体上还是不错的,但是难用在以下几点

  • 不能保存密码,长密码每次打起来难受
  • 掉线三分钟才给提示,打不开网页但是又显示可以正在连接特别纠结
  • 掉线不能重连
  • 没有使用多线程导致wifi不好的时候登录特别卡
    经过一个月的折磨,我决定推出自己的版本:

然后我就尝试在电脑上利用古老的易语言开发了第一款可以掉线重连的上网登录器(源码)…

  • 可保存密码
  • 可保存多用户
  • 状态实时显示,可以查是否掉线
  • 流量条显示
  • 解除受限(wifi连上了但是就是受限没办法登录)

电脑版上网登录原理

好了,下面说它的了,其实它的原理跟上网登录网页版(http://weblogin.btbu.edu.cn)原理一模一样. 首先我们来了解一下网页版的登录方式. 举个例子,登录:登录实际上就是POST一个数据到服务器上. 参考资料:HTTP 方法:GET 对比 POST 我假设你此时已经明白什么是POST. 下面则是上网登录各种操作的通用格式.

  • http://weblogin.btbu.edu.cn/cgi-bin/netlogincgi.cgi?msajaxfix=时间戳
  • cinfo=cinfo&einfo=einfo&chgpwd=chgpwd&logout=Logout&login=Login&netlogincmd=操作命令&proxyip=127.0.0.1&newpassword=&password=密码&account=帐号 学校的上网规律是这样的,没有登录的时候首先要登录一下,之后每隔30秒发送一次保持在线的命令,如果超过一分钟没有保持在线就默认断开了,那么就需要重新登录.

  • 登录的操作命令为1
  • 改密码的操作命令为2
  • 查流量的操作命令为3
  • 保持在线的操作命令为5
  • 断开的操作命令为0

你是不是想问4是什么命令?我也不知道,因为我的操作过程中没有碰到过4.

让我们来总结一下,首先我们学会了POST,然后知道了学校的命令格式,我们根据这些格式就能够实现登录,改密码,查流量,保持在线和断开这几个操作,我们是不是可以开始写程序了呢?其实现在还需要一个重要的东西来满足我们的用户体验,它叫多线程技术.为什么要多线程?当你按下一个按钮,看到程序卡上几秒钟再弹出一个登录失败的窗口之后,你就明白多线程了.

我们把学校的登录和保持在线的逻辑写在程序里,然后再用多线程承载网络等耗时任务,就可以做出来上网登录的程序了.