zoukankan      html  css  js  c++  java
  • websocket flutter

    https://stackoverflow.com/questions/51077233/how-can-i-use-socket-in-flutter-app

    import 'dart:io';
    import 'dart:async';
    
    Socket socket;
    
    void main() async{
      await Socket.connect("cn.whois-servers.net", 43).then((Socket sock) {
        socket = sock;
        socket.listen(dataHandler,
            onError: errorHandler,
            onDone: doneHandler,
            cancelOnError: false);
      }).catchError((AsyncError e) {
        print("Unable to connect: $e");
      });
      //Connect standard in to the socket
    //  stdin.listen((data) => socket.write(new String.fromCharCodes(data).trim() + '
    '));
      socket.write('wuwu.cn
    ');
    }
    
    void dataHandler(data){
      print('getting data');
      print(new String.fromCharCodes(data).trim());
    }
    
    void errorHandler(error, StackTrace trace){
      print(error);
    }
    
    void doneHandler(){
      socket.destroy();
    }
    

      

    import 'dart:io';
    import 'dart:async';
    import 'package:flutter/material.dart';
    import 'package:rxdart/rxdart.dart';
    import 'dart:convert';
    
    
    main()=>runApp(MaterialApp(home: MyApp(sock: SOCK(),),));
    
    class MyApp extends StatelessWidget {
      MyApp({this.sock});
      final SOCK sock;
      TextEditingController _textController = TextEditingController();
    
      _send(){
        sock.send();
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(title: Text('test'),),
          body: Container(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                StreamBuilder(
                  stream: sock.sock,
                  builder: (context, snapshot){
                    if(snapshot.hasData){
                      return Text('has data');
                    } else {
                      return Text('no data');
                    }
                  },
                ),
                TextField(controller: _textController,),
              ],
            ),
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: _send,
          ),
        );
      }
    }
    
    class SOCK {
      Socket sock;
      openSock () async{
        sock = await Socket.connect('cn.whois-servers.net', 43);
        sock.listen(onData);
        print('connecting');
      }
    
      send() async {
        print('sending from SOCK');
        await openSock();
        await sock.write('zizi.cn
    ');
    //    await sock.destroy();
      }
    
      onData(value){
        print('received');
    //    var a = String.fromCharCodes(value);
        var b = utf8.decode(value);
        print(b);
      }
    }
    

      

  • 相关阅读:
    10条建议帮助你创建更好的jQuery插件
    jQuery的end()方法使用详解
    jquery合并表格中相同文本的相邻单元格
    jQuery动态星级评分效果实现方法
    jQuery过滤HTML标签并高亮显示关键字的方法
    jQuery实现高亮显示网页关键词的方法
    深入.net调用webservice的总结分析
    C#中遍历各类数据集合的方法总结
    asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示例代码)
    使用交叉验证对鸢尾花分类模型进行调参(超参数)
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10693914.html
Copyright © 2011-2022 走看看