过生日这几天一直在腐败,今天抽时间把小车遥控器的攻略补上。这个小车遥控器一共需要四个程序,首先看看运行在笔记本上,用来接收手机指令的Web Service。
先创建一个Web Service工程,命名为 WCF_ReceivePhoneMessage:
在工程根目录里新建一个文件Web.config,并添加以下的设置:
<appSettings> <add key="PortNumber" value="31718" /> </appSettings>
这个是将来用来转发指令的Socket端口号。接下来再创建一个ping.asmx文件,这个就是传说中的Web Service的接口,代码如下:
[WebService(Namespace = "http://www.diy-robots.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] public class Ping : System.Web.Services.WebService { static private int PortNumber = Convert.ToInt32(ConfigurationManager.AppSettings["PortNumber"]); [WebMethod] public void SetData(string data) { if (!string.IsNullOrEmpty(data)) { try { //Here are codes to get the IP address of local computer //You can also set it directly string ipAddress = ""; IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ipAddr in ipHost.AddressList) { ipAddress = ipAddr.ToString(); if (ipAddress.IndexOf(":") < 0)="" break;="" }="" send="" tcp/ip="" data="" tcpclient="" client="new" tcpclient();="" client.connect(ipaddress,="" portnumber);="" networkstream="" stream="client.GetStream();" byte[]="" bytes="Encoding.ASCII.GetBytes(data);" lock="" (stream)="" {="" stream.write(bytes,="" 0,="" bytes.length);="" }="" client.close();="" }="" catch="" (exception)="" {="" }="" }="" }="" }="">
段代码其实很简单,就是创建一个SetData函数,把传进来的string类型的参数转成byte数组,然后转发到制定的Socket端口。为了让这个Web Service生效,还需要在IIS里面生成一个应用程序。看下面这个图:
IIS设置设置好了,咱们在浏览器里简单测试一下程序是不是部署成功,输入下面的地址:其中ComputerNames是你自己电脑的名字
这个页面只要不出错就算成功了,正确的显示应该是这样:
本来想把手机上的程序也一起发完,不过又累又困,下回再说吧
上面这个web service的源代码可以在这里下载:
加油, 回頭拍個視頻放上去