当前位置: 首页 > news >正文

上海做外贸网站设计烟台装修公司网站建设

上海做外贸网站设计,烟台装修公司网站建设,最近时政新闻10条,长沙河西网站建设概述在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备#xff08;主要是手机#xff09;#xff0c;并将PC上的文件通过蓝牙传输到手机上。目前我采用的是OpenNETCF.Net.Bluetooth#xff0c;能够正常发现周围的蓝牙设备#xff0c;手机也能够正常进行蓝… 概述在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备主要是手机并将PC上的文件通过蓝牙传输到手机上。目前我采用的是OpenNETCF.Net.Bluetooth能够正常发现周围的蓝牙设备手机也能够正常进行蓝牙连接并接收文件。代码实现1、查找周围蓝牙设备 BluetoothClient bc new BluetoothClient();BluetoothDeviceInfo[] bdi;bdi bc.DiscoverDevices(10);//查找周围最多10个蓝牙设备if (bdi.Length 0){this.ShowErrMsg(请确认您的蓝牙已开启);return;} 2、打开数据流 #region OBEXOpenStreampublic bool OBEXOpenStream(string BTMAC){// serial port UUIDGuid spguid OpenNETCF.Net.Bluetooth.BluetoothService.ObexObjectPush;OpenNETCF.Net.BluetoothAddress btaddress OpenNETCF.Net.BluetoothAddress.Parse(BTMAC);client new OpenNETCF.Net.Sockets.BluetoothClient();// define endpointOpenNETCF.Net.BluetoothEndPoint endpoint new OpenNETCF.Net.BluetoothEndPoint(btaddress, spguid);try{//open socketclient.Connect(endpoint);}catch{//unable to connect (server not listening on spguid)return false;}//connect socketstream client.GetStream();return true;}#endregion 3、配对连接 private bool OBEXConnect(){//send client requestbyte[] ConnectPacket new byte[7];ConnectPacket[0] 0x80; // ConnectConnectPacket[1] 0x00; // Packetlength Hi ByteConnectPacket[2] 0x07; // Packetlength Lo ByteConnectPacket[3] 0x10; // Obex v1ConnectPacket[4] 0x00; // no flagsConnectPacket[5] 0x20; // 8k max packet size Hi ByteConnectPacket[6] 0x00; // 8k max packet size Lo Bytestream.Write(ConnectPacket, 0, ConnectPacket.Length);//listen for server responsebyte[] ReceiveBufferA new byte[3];stream.Read(ReceiveBufferA, 0, 3);if (ReceiveBufferA[0] 160) // 0xa0{//success, decode rest of packetint plength (0xff * ReceiveBufferA[1]) ReceiveBufferA[2]; //length of packet is...//listen for rest of packetbyte[] ReceiveBufferB new byte[plength - 3];stream.Read(ReceiveBufferB, 0, plength - 3);int obver ReceiveBufferB[0]; //server obex version (16 v1.0)int cflags ReceiveBufferB[1]; //connect flagsint maxpack (0xff * ReceiveBufferB[2]) ReceiveBufferB[3]; //max packet sizereturn true;}else{return false;}} 4、发送文本内容 //send client request, start putstring tName BRT优惠卷.txt;string tType ;string tFileContent 优惠卷内容: this.txtContent.Text.Trim();int result OBEXRequest(PUT, tName, tType, tFileContent);if (result 160){SendSuccess true;} 完整代码using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net.Sockets; using OpenNETCF; using OpenNETCF.Net; using OpenNETCF.Net.Bluetooth; using OpenNETCF.Net.Sockets;public partial class _Default : System.Web.UI.Page {//Stream stream;NetworkStream stream;OpenNETCF.Net.Sockets.BluetoothClient client;protected void Page_Load(object sender, EventArgs e) {}#region ShowErrMsgprivate void ShowErrMsg(string err) {string str;str script languagejavascript;str alert( err );str /script;this.RegisterStartupScript(, str);}#endregionprotected void btnSend_Click(object sender, EventArgs e) {if (this.txtContent.Text.Trim() string.Empty){this.ShowErrMsg(请输入发送内容);return;}BluetoothClient bc new BluetoothClient();BluetoothDeviceInfo[] bdi;bdi bc.DiscoverDevices(10);//查找周围最多10个蓝牙设备if (bdi.Length 0){this.ShowErrMsg(请确认您的蓝牙已开启);return;}bool SendSuccess false;try{foreach (BluetoothDeviceInfo bd in bdi){if (OBEXOpenStream(bd.DeviceID.ToString())){if (OBEXConnect()){//send client request, start putstring tName BRT优惠卷.txt;string tType ;string tFileContent 优惠卷内容: this.txtContent.Text.Trim();int result OBEXRequest(PUT, tName, tType, tFileContent);if (result 160){SendSuccess true;}}OBEXCloseStream();}else{this.ShowErrMsg(连接失败 bd.DeviceName.ToString());}}if (SendSuccess){this.ShowErrMsg(发送成功谢谢使用);}}finally{OBEXCloseStream();}}#region OBEXOpenStreampublic bool OBEXOpenStream(string BTMAC) {// serial port UUIDGuid spguid OpenNETCF.Net.Bluetooth.BluetoothService.ObexObjectPush;OpenNETCF.Net.BluetoothAddress btaddress OpenNETCF.Net.BluetoothAddress.Parse(BTMAC);client new OpenNETCF.Net.Sockets.BluetoothClient();// define endpointOpenNETCF.Net.BluetoothEndPoint endpoint new OpenNETCF.Net.BluetoothEndPoint(btaddress, spguid);try{//open socketclient.Connect(endpoint);}catch{//unable to connect (server not listening on spguid)return false;}//connect socketstream client.GetStream();return true;}#endregion#region OBEXCloseStreamprivate void OBEXCloseStream() {if (stream ! null){stream.Close();}if (client ! null){client.Close();}}#endregion#region OBEXConnectprivate bool OBEXConnect() {//send client requestbyte[] ConnectPacket new byte[7];ConnectPacket[0] 0x80; // ConnectConnectPacket[1] 0x00; // Packetlength Hi ByteConnectPacket[2] 0x07; // Packetlength Lo ByteConnectPacket[3] 0x10; // Obex v1ConnectPacket[4] 0x00; // no flagsConnectPacket[5] 0x20; // 8k max packet size Hi ByteConnectPacket[6] 0x00; // 8k max packet size Lo Bytestream.Write(ConnectPacket, 0, ConnectPacket.Length);//listen for server responsebyte[] ReceiveBufferA new byte[3];stream.Read(ReceiveBufferA, 0, 3);if (ReceiveBufferA[0] 160) // 0xa0{//success, decode rest of packetint plength (0xff * ReceiveBufferA[1]) ReceiveBufferA[2]; //length of packet is...//listen for rest of packetbyte[] ReceiveBufferB new byte[plength - 3];stream.Read(ReceiveBufferB, 0, plength - 3);int obver ReceiveBufferB[0]; //server obex version (16 v1.0)int cflags ReceiveBufferB[1]; //connect flagsint maxpack (0xff * ReceiveBufferB[2]) ReceiveBufferB[3]; //max packet sizereturn true;}else{return false;}}#endregion#region OBEXRequestprivate int OBEXRequest(string tReqType, string tName, string tType, string tFileContent) {//send client requestint i;int offset;int packetsize;byte reqtype 0x82;int tTypeLen 0x03;int typeheadsize;int typesizeHi 0x00;int typesizeLo 0x03;//tName contact.vcf;//tType text/x-vCard;//tFileContent BEGIN:VCARD\r\nVERSION:2.1\r\nN:;aardvark\r\nFN:aardvark\r\nEND:VCARD\r\n;if (tReqType GET){reqtype 0x83; // 131 GET-Final}if (tReqType PUT){reqtype 0x82; // 130 PUT-Final}packetsize 3;//Name Headerint tNameLength tName.Length;int nameheadsize (3 (tNameLength * 2) 2);int namesizeHi (nameheadsize 0xff00) / 0xff;int namesizeLo nameheadsize 0x00ff;packetsize packetsize nameheadsize;if (tType ! ){//Type HeadertTypeLen tType.Length;typeheadsize 3 tTypeLen 1;typesizeHi (typeheadsize 0xff00) / 0xff;typesizeLo typeheadsize 0x00ff;packetsize packetsize typeheadsize;}//Bodyint fileLen System.Text.Encoding.Default.GetBytes(tFileContent).Length;//tFileContent.Length;int fileheadsize 3 fileLen;int filesizeHi (fileheadsize 0xff00) / 0xff; ;int filesizeLo fileheadsize 0x00ff; ;packetsize packetsize fileheadsize;int packetsizeHi (packetsize 0xff00) / 0xff;int packetsizeLo packetsize 0x00ff;byte[] tSendByte new byte[packetsize];//PUT-final HeadertSendByte[0] reqtype; // Request type e.g. PUT-final 130tSendByte[1] Convert.ToByte(packetsizeHi); // Packetlength HitSendByte[2] Convert.ToByte(packetsizeLo); // Packetlength Looffset 2;//Name HeadertSendByte[offset 1] 0x01; // HI for Name header tSendByte[offset 2] Convert.ToByte(namesizeHi); // Length of Name header (2 bytes per char)tSendByte[offset 3] Convert.ToByte(namesizeLo); // Length of Name header (2 bytes per char)// Name\n\n in unicodebyte[] tNameU System.Text.Encoding.BigEndianUnicode.GetBytes(tName);tNameU.CopyTo(tSendByte, offset 4);offset offset 3 (tNameLength * 2);tSendByte[offset 1] 0x00; // null termtSendByte[offset 2] 0x00; // null termoffset offset 2;if (tType ! ){//Type HeadertSendByte[offset 1] 0x42; // HI for Type Header 66tSendByte[offset 2] Convert.ToByte(typesizeHi); // Length of Type HeadertSendByte[offset 3] Convert.ToByte(typesizeLo); // Length of Type Headerfor (i 0; i (tTypeLen - 1); i){tSendByte[offset 4 i] Convert.ToByte(Convert.ToChar(tType.Substring(i, 1)));}tSendByte[offset 3 tTypeLen 1] 0x00; // null terminatoroffset offset 3 tTypeLen 1;}//BodytSendByte[offset 1] 0x49; //HI End of Body 73tSendByte[offset 2] Convert.ToByte(filesizeHi); //tSendByte[offset 3] Convert.ToByte(filesizeLo); //1k payload 3 for HI header//for (i 0; i (fileLen - 1); i)//{// tSendByte[offset 4 i] Convert.ToByte(tFileContent.Substring(i, 1));//Convert.ToByte(Convert.ToChar(tFileContent.Substring(i, 1)));//}byte[] bfile System.Text.Encoding.Default.GetBytes(tFileContent);for (i 0; i bfile.Length - 1; i){tSendByte[offset 4 i] bfile[i];}//tSendByte[offset4fileLen] 0x00; // null terminatoroffset offset 3 fileLen;stream.Write(tSendByte, 0, tSendByte.Length);//listen for server response//TODO: can hang here forever waiting response...bool x stream.DataAvailable; // changed bluetoothclient - public NetworkStream GetStream()byte[] tArray4 new byte[3];stream.Read(tArray4, 0, 3);x stream.DataAvailable;if (tArray4[0] 160) // 0xa0{int plength (tArray4[1] * 256) tArray4[2] - 3;byte[] tArray5 new byte[plength];if (plength 0){stream.Read(tArray5, 0, plength);//TODO: data in returned packet to deal with}return 160;}if (tArray4[0] 197) // 0xc5 Method not allowed{return 197;}if (tArray4[0] 192) // 0xc0 Bad Request{return 192;}return 0;}#endregion }
http://wiki.neutronadmin.com/news/309541/

相关文章:

  • 网站建设 有哪些费用大学生asp网站开发的实训周
  • 房地产网站方案wordpress seo教程
  • 要想学做网站typecho还是WordPress
  • 滨湖区建设局网站网站上传虚拟主机
  • 合肥营销型网站建设开发建设网站教程视频下载
  • 杭州高端模板建站网站服务器站点是什么意思
  • 网站建设 财务归类效果图制作软件app
  • 科技公司网站推荐做两个单页面网站大概多少钱
  • o2o型网站wordpress创建标签
  • 网站开发报价表格富阳网站
  • 建设局网站打不开是什么原因青岛市崂山区建设局网站
  • 合肥集团网站建设哪个好自己切片做网站
  • 梅山建设局网站去成都旅游攻略
  • 做网站流量点击分析的软件金馆长做图网站
  • js特效网站欣赏wordpress主要用途
  • 常州制作企业网站it外包运维服务
  • 网站建设和电商区别wordpress 36kr
  • 网站绑定别名好吗网站建设长期待摊费用
  • 梅州做网站app开发公司有什么部门
  • 我的世界做指令的网站网站建设公司百家号
  • 网站建设中js控制什么爱写作网站
  • 网站挂标 怎么做郑州手机端网站建设
  • 文档里链接网站地址怎么做熊猫头表情包制作网站
  • 酒店 深圳 网站建设wordpress 评论 电话
  • 网站服务器崩溃怎么办开发区建设集团网站
  • 门户网站建设的成果广告公司简介文案
  • 怎么制作一个网站教程国外做测评的网站
  • 国内网站建设需要多少钱网站功能设计的内容
  • asp化妆品网站工业设计网站国外
  • 免费网站空间怎么做网站网站建设家乡网页设计模板