日期:2014-05-17  浏览次数:21486 次

急!c# socket往网口发送16进制数据,在线等,回答正确后马上结贴给分
本帖最后由 lsd0532 于 2012-11-25 08:53:22 编辑
socket客户端发送16进制程序如下:
byte[] logout = new byte[20] { 0x10, 0x00, 0x00, 0x00, 0x02, 0x0d, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
byte[] login1 = { 0x10, 0x01, 0x00, 0x00, 0x01, 0x0d, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
        
ipep = new IPEndPoint(IPAddress.Parse(pubHostAddr), pubHostPort);
server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
    
server.SendTo(logout, ipep);//将数据发送到指定的终结点
server.SendTo(login1, ipep);//将数据发送到指定的终结点

两个变量写在ini文件中,设置为pubHostAddr=127.0.0.1;pubHostPort=9050时我用自己服务器端的程序测试客户端发送16进制数字成功,也能解析,可是往设备上发送时设备没反应。
目前设备厂家那边只是说传输logout、login1那样的十六进制数字即可,没有类似dll、sdk的东东。我从网上查还需要服务器端的通讯协议,我对网络编程不太懂,是新手,请问大侠,必须知道服务器端的通信协议吗?是哪个地方出了问题,谢谢

------解决方案--------------------
可以联系919661653一起探讨