11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 715|回复: 2
上一主题 下一主题

[悬赏 ≤ 99 银子] socket 怎么接收hex并trace出来呢?

[复制链接] TA的其它主题
发表于 2023-2-8 07:38:33 | 显示全部楼层 |阅读模式
55银子
如题,socket如何接收16进制的数据并trace

发表于 2023-2-9 09:10:28 | 显示全部楼层
本帖最后由 wuliao2014 于 2023-2-9 09:11 编辑

              大概思路是这样的:
                private var HexStr:String="";//获取串口16进制字符串
                private function socketData(e:ArduinoConnectorEvent):void
                {
                        HexStr="";
                        while(arduino.bytesAvailable)
                        {
                                var hex:String=arduino.readByte().toString(16);
                                HexStr+=hex.length>1?hex:"0"+hex;//没有空格间隔的字符串
                                //Hex+=hex.length>1?hex:"0 "+hex+" ";//有空格间隔的字符串
                        }
                        trace(HexStr)
                }

回复

使用道具 举报

发表于 2024-9-5 11:30:23 | 显示全部楼层
本帖最后由 xxdmx712 于 2024-9-5 11:32 编辑

// 借助com.hurlant.util.Hex
import com.hurlant.util.Hex;
import flash.net.Socket;
var flushMode:String = "Bytes";
var socket:Socket = new Socket();
//...处理tcp链接
socket.addEventListener(ProgressEvent.SOCKET_DATA,onSOCKET_DATA);
function onSOCKET_DATA(event:ProgressEvent):void
{
        try
        {
                //数据更新  
                var tmpSocket:Socket = event.target as Socket;
                var socketData:*;
                switch (flushMode)
                {
                        case UTFBytes" :
                                var msg:String = tmpSocket.readUTFBytes(tmpSocket.bytesAvailable);
                                socketData = msg;
                                break;
                        case "Bytes" :
                                var byteArr:ByteArray = new ByteArray();
                                tmpSocket.readBytes(byteArr,0,tmpSocket.bytesAvailable);
                                socketData = byteArr;
                                break;
                        default :
                                break;
                };
                if (updataMsg)
                {
                        updataMsg(socketData);
                }
        }
        catch (error:Error)
        {
                //...处理异常
        }
}
function updataMsg(backs:*):void
{
        var backInfo:String = "";
        if (backs is ByteArray)
        {
                backInfo = Hex.fromArray(backs);
        }
        if (backs is String)
        {
                backInfo = backs;
        }
        trace("TCP回执报文>",backInfo);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表