windows phone 7 与wifi小车的socket通信
来源:互联网 发布:张艺兴凝血障碍知乎 编辑:程序博客网 时间:2024/06/11 09:58
wp7手机要对wifi小车发送控制指令,在建立好wifi连接之后,就要用socket通信了。之前介绍了703n路由里ser2net包的强大功能(能将ttl串口信号和net信号相互转换),下位机仍然只管接收发送串口信号就行。
其实也就是在wp7和703之间建立通信,发送网络指令。
添加这两个引用,原因就不说了
using System.Net;
using System.Net.Sockets;
定义几个变量
private Socket sock = null;
private string wifiIP = string.Empty;
private int wifiPort;
private ManualResetEvent MyEvent = null;
private DnsEndPoint hostEntry;
在formload里写如下代码
wifiIP = "路由器ip地址";
wifiPort = "路由telnet端口";
//建立一个终结点对像
hostEntry = new DnsEndPoint(wifiIP, wifiPort);
//创建一个Socket对象
try
{
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
catch (Exception ex)
{
// sysInfo.Text = "与路由器连接失败";
}
if (sock != null)
{
connectsocket();
}
private void connectsocket()
{
if (sock != null)
{
SocketAsyncEventArgs connArg = new SocketAsyncEventArgs();
// 要连接的远程服务器
connArg.RemoteEndPoint = new DnsEndPoint(wifiIP, wifiPort);
// 操作完成后的回调
connArg.Completed += (sendObj, arg) =>
{
if (arg.SocketError == SocketError.Success) //连接成功
{
//Dispatcher.BeginInvoke(() => sysInfo.Text = "连接成功。");
}
else
{
Dispatcher.BeginInvoke(() =>
{
// sysInfo.Text = "连接失败,错误:" + arg.SocketError.ToString();
});
}
// 向调用线程报告操作结束
MyEvent.Set();
};
// 重置线程等待事件
MyEvent.Reset();
// sysInfo.Text = "正在连接,请等候……";
// 开始异连接
sock.ConnectAsync(connArg);
// 等待连接完成
MyEvent.WaitOne(6000);
}
}
这样与路由就建立起了连接,接下来写个发送信息的方法:
private void SendData(string data)
{
if (sock != null && sock.Connected)
{
SocketAsyncEventArgs sendArg = new SocketAsyncEventArgs();
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(data);
sendArg.SetBuffer(buffer, 0, buffer.Length);
// 发送完成后的回调
sendArg.Completed += (objSender, mArg) =>
{
// 如果操作成功
if (mArg.SocketError == SocketError.Success)
{
//Dispatcher.BeginInvoke(() => sysInfo.Text = "发送成功。");
}
else
{
Dispatcher.BeginInvoke(() =>
{
//this.sysInfo.Text = "发送失败,错误:" + mArg.SocketError.ToString();
});
}
// 报告异步操作结束
MyEvent.Set();
};
// 重置信号
MyEvent.Reset();
// Dispatcher.BeginInvoke(() => sysInfo.Text = "正在发送,请等候……");
// 异步发送
sock.SendAsync(sendArg);
// 等待操作完成
MyEvent.WaitOne(6000);
}
}
- windows phone 7 与wifi小车的socket通信
- windows phone 7 重力感应控制wifi小车
- 用windows phone控制wifi小车
- Windows Phone平台上的Socket通信
- Windows Phone 的通信
- 吐槽Windows Phone 7的Socket类型
- android在wifi下手机与电脑的socket通信
- android在wifi下手机与电脑的socket通信
- wifi小车的制作
- windows与虚拟机下的socket通信
- Windows Phone 7 下 Socket(TCP) 与 PC 通讯
- 进击的socket(windows phone socket api)
- WIFI小车记录五:单片机串口通信
- Windows Phone下的Socket编程
- windows 与 linux 系统的socket的通信
- Windows Phone 7 socket实现即时聊天
- Windows客户端与Android服务端的Socket通信
- Windows客户端与Android服务端的Socket通信(USB
- Session
- suse配置sendmail
- Android之如何避免系统回收
- hdu 2032
- linux转windows的一些小错误:snprintf
- windows phone 7 与wifi小车的socket通信
- 利用mkimage 把zImage转换为uImage的方法
- 多项式运算线性链表的应用
- 解决 “python [Errno 13] Permission denied”
- Apple: HTTP Live Streaming
- 纪念北京房价破3,破4
- Java线程:学习教程(转)
- zwcad获取打印样式和打印设备(如果是CAD,将zw换成ac即可)
- 俄罗斯方块设计原理