dart socket 定长数据

class _RoomBDXPageState extends State<RoomBDXPage> {

  var _dataFormServerSocket = {'data': ''};

  dealContent(data){
    _dataFormServerSocket['data'] = _dataFormServerSocket['data']+data;
    if(_dataFormServerSocket['data'].length > 4){
      int content_length = int.parse(_dataFormServerSocket['data'].substring(0,4));
      String last = _dataFormServerSocket['data'].substring(4,_dataFormServerSocket['data'].length);
      if(last.length >= content_length){
        String mes = last.substring(0,content_length);
        //deal data
        Map infomationFromServer = json.decode(mes);
        print(infomationFromServer);
        print('infomationFromServer : '+infomationFromServer.toString());
        //save remain
        _dataFormServerSocket['data'] = _dataFormServerSocket['data'].substring(content_length+4,_dataFormServerSocket['data'].length);
        print('_dataFormServerSocket["data"] : '+_dataFormServerSocket['data']);
      }
    }
  }

  @override
  Widget build(BuildContext context) {
   ......

 

posted on 2018-08-16 11:55  --LP--  阅读(928)  评论(0)    收藏  举报

导航