问题

最近电脑宽带总是自动掉线,蛋疼啊。
在网络上下载了工具,实现自动重连,但是都带广告着啊,不能忍
不能忍。

思路

用C#操作宽带连接,包括Java或者其他语言操作宽带连接,一个很简单的方法是使用在代码中执行cmd命令,通过该进程的输出内容判断执行结果。

网络是否已连接

已连接

C:\Users\MrSeng>rasdial
已连接
宽带连接
命令已完成。

未连接

C:\Users\MrSeng>rasdial
没有连接
命令已完成。

连接宽带

C:\Users\MrSeng>rasdial 宽带连接 13233053569 yz2000
正在连接到 宽带连接...
正在验证用户名及密码...
正在网络上注册你的计算机...
已连接 宽带连接。
命令已完成。

代码

class Manager
{private static bool isRunning = false; //是否自动重连public static void setIsRunning(bool b){isRunning = b;}private string adslTitle, adslName, adslPwd;private int wait;public Manager(string adslTitle,string adslName,string adslPwd,bool isAuto,int wait){this.adslTitle = adslTitle;this.adslName = adslName;this.adslPwd = adslPwd;this.wait = wait;isRunning = isAuto;}//运行cmdpublic static  string exeCmd(string cmd){cmd = cmd.Trim().TrimEnd('&') + "&exit";//说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态using (Process p = new Process()){p.StartInfo.FileName = "cmd.exe";p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出p.StartInfo.CreateNoWindow = true;          //不显示程序窗口p.Start();//启动程序//向cmd窗口写入命令p.StandardInput.WriteLine(cmd);p.StandardInput.AutoFlush = true;//获取cmd窗口的输出信息string output = p.StandardOutput.ReadToEnd();p.WaitForExit();//等待程序执行完退出进程p.Close();return output;}}//判断是否已连接public static bool isConned(){string cmd = "rasdial";string result = exeCmd(cmd);return result.Contains("已连接");}//连接宽带public  bool conn(){if (!isConned()){string cmd = "rasdial " + adslTitle + " " + adslName + " " + adslPwd;string result = exeCmd(cmd);return result.Contains("已连接");}return true;}//断开public  bool cutConn(){if (isConned()){string cmd = "rasdial " + adslTitle + " /disconnect";return !exeCmd(cmd).Contains("没有");}return true;}private void taskMethod(Object wait ){int delay = int.Parse(wait as string);while (isRunning){if (!isConned()){conn();}Thread.Sleep(delay);}}public void connNet(){if (isRunning){conn();}else{ThreadPool.QueueUserWorkItem(taskMethod, wait * 1000 + "");}}
}

国际惯例

附上源码与可执行文件
http://pan.baidu.com/s/1geJdPw3

Windows宽带断线重连(C#)相关推荐

  1. Drcom客户端可以卸载了! 在Windows上编写bat脚本实现深大校园网认证, 并可断线重连(Drcom Pt版)

    写在前面 之前有写文章分析了深大校园网的认证过程, 编写Linux脚本可在路由器等Linux设备上实现自动登录, 断线自动重连. 考虑到Windows才是主要使用者, 本篇文章分享在Windows上编 ...

  2. 开机自动拨号,断线重连,并且动态解析dns记录,java版

    上一篇文章讲到:开机自动拨号与DDNS 它的实现方式是win10自带的批处理文件,但在我使用的过程中发现,这个批处理文件有些时候会失效,因为在那个批处理文件是以异常的产生才执行对应操作,但在使用的过程 ...

  3. 一步到位自动拨号及断线重拨

    一步到位自动拨号及断线重拨 对使用ADSL虚拟拨号接入宽带的朋友来说,最头疼的恐怕就是:每次上网都需要拨号.断线后还需要重新拨号了.其实自己动手,简单设置一下,就可以做到一劳永逸!下面以"W ...

  4. 支持断线重连、永久watcher、递归操作 ZooKeeper 客户端

    项目介绍 ZooKeeper本质上是一个分布式的小文件存储系统.原本是Apache Hadoop的一个组件,现在被拆分为一个Hadoop的独立子项目. Zookeeper 作为一个分布式的服务框架,主 ...

  5. Delphi断线重连线程

    作为tcp客户端,使用TIdTcpClient控件,在与后台服务的交互时,如果出现网络异常,或者后台服务重启,会导致无法保存数据或查询后台数据,这种情况下可以开启断线重连线程,自动连接上后台服务 un ...

  6. C# + Socket断线重连 整理

    Socket 连接异常之"由于目标机器积极拒绝,无法连接(System.Net.Sockets.SocketException:Connection refused)" 1.如果是 ...

  7. 关于tcp断线重连的问题

    在工控上经常用到tcp连接,比如串口服务器或某些支持modbustcp协议的仪表等,以前尽量使用串口服务器的虚拟串口功能,现在逐步使用上了tcpserver或tcpclient模式. 搜索了个C++ ...

  8. 面试官问:服务的心跳机制与断线重连,Netty底层是怎么实现的?懵了

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 心跳机制 何为心跳 所谓心跳, 即在 TCP 长连接中, ...

  9. Netty实现心跳机制与断线重连

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:https://www.jianshu.com/p/ ...

最新文章

  1. easyUI清除序号
  2. k-NN最近邻算法(k-nearest neighbors algorithm)
  3. HTML在线编辑器控件
  4. Springboot简单应用
  5. 程序员如何让自己的工作更上一个台阶
  6. 巧用句柄函数:闪烁窗体,做提示功能时很有用哦
  7. go sync.WaitGroup源码分析
  8. eclipse 查找
  9. System.getProperty()参数
  10. java c s聊天程序_Java建立C/S 模式聊天室服务器和客户端
  11. 8、TypeScript-解构赋值
  12. C/C++中static关键字的作用
  13. 【考研】2020年,计算机,考研,专业课(408)大纲,排版校对版
  14. python设计模式-模板方法模式 1
  15. CSS权威指南(1)
  16. 通过JLINK下载程序(附JLINK驱动)
  17. SIFI尺度不变特征变换算法
  18. 计算机摄影采用的成像媒介,探讨computed tomography的中文名称
  19. 柏林是哪个系统的服务器,柏林系统其实很“佛系”,明白了这些你也能玩好海缸!...
  20. 前端复习之Ajax,忘完了

热门文章

  1. 高手必备!Vista的经典绝技大揭密!
  2. 对话数十位学术合作代表:如何提升前沿技术在商业领域的落地应用?
  3. 浅谈linux中的硬链接和软链接文件以及ln的使用方法
  4. java打印/导出自定义word文档
  5. iOS学习笔记-110.多线程09——CGD队列组
  6. 如何正确的保养和使用笔记本电脑电池
  7. java里两条竖杠应该怎么打_图解怎么在打出一个竖杠或两个竖杠
  8. 2023年吉林大学口腔专业考研上岸前辈备考经验指导
  9. mysql deallocate,MySQL中prepare与execute以及deallocate预处理语句的使用教程
  10. 论文阅读 (90):Proposal-based Multiple Instance Learning (P-MIL, 2023CVPR)