|
本帖最后由 whble 于 2013-10-4 21:33 编辑
昨天刚刚完成一两基于蓝牙、舵机+超声波壁障小车,已经完美解决安卓端的数据回传
今天于是把之前的“智能家居”项目的pc端软件在次升级一下,这是自己写的异步通信类
的第三次升级
首先看效果图
1.使用控制台应用程序来监控整个软件的运行效果
如接入路由器的初始化过程、下发的数据监控、上传数据的监控以及软件中所有控件
动作监控,能够良好的知道软件运行状态,所有异常抛出监控。
2.数据接收在之前的数据双向回传软件的基础上稍加修改,用户可以自定义数据长度,摆脱
定死的限制,待会的代码中会出现介绍
- namespace socketFunc
- {
- #region socket 父类
- public class SocketFunc
- {
- private IPEndPoint serverIP;
- public Socket communicateSocket = null;//定义一个socket对象
- public Byte[] buffer; //用于缓存数据
- private int bytelenth;//设置数据长度字段,通过字段封装来处理
- public int Bytelenth
- {
- get { return bytelenth; }
- set { bytelenth = value; }
- }
- public void Access(string IP,string Port, System.Action AccessAciton)//接入路由访问的方法 参数为IP地址、端口号、一个AccessAction方法(后有介绍)
- {
- communicateSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss :")+ //控制台监控输出,下同
- "begin communicateSocket.Bind ... ... ");
- communicateSocket.Bind(new IPEndPoint(IPAddress.Any, int.Parse(Port))); //远程ip绑定
- try
- {
- serverIP = new IPEndPoint(IPAddress.Parse(IP), int.Parse(Port));
- }catch
- {
- Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss :")
- +String.Format("{0} is an unusable ip !", IP));
- }
- try
- {
- Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss :")
- + String.Format("BeginConnect {0} ... ...", IP));
- communicateSocket.BeginConnect(serverIP, ar =>//socket开始连接 ar对象的返回来判断是否连接ok
复制代码 上面这个类封装已经封装好了 想学习的朋友可以拿去试试
另外怎么在自己的软件中使用这个socketFunc类,比如我们的wifi小车自己的软件中使用
- private string ControlIp = "192.168.1.1";
- private string Port = "2001";
- private SocketFunc socket = new SocketFunc();//实例化一个类对象
复制代码 只要导入socketFunc类 然后按照上面介绍的方法和字段设置好了 那么你的wifi控制软件就完全可以随性修改数据包了
想交流加我,另外这些都是自己琢磨的 说错或错误的地方请留言告诉我 非常感谢!
由于帖子省略不少内容
整理成word文档发出
|
-
-
原帖.zip
49.35 KB, 下载次数: 95, 下载积分: 金钱 -1
|