RawSocketEvent

用于 RawDatagramSocketRawSecureSocketRawSocket 的事件。

当套接字状态变化时,这些事件对象由套接字的 Stream 行为(例如 RawSocket.listenRawSocket.forEach)使用。

import 'dart:convert';
import 'dart:io';

void main() async {
  final socket = await RawSocket.connect("example.com", 80);

  socket.listen((event) {
    switch (event) {
      case RawSocketEvent.read:
        final data = socket.read();
        if (data != null) {
          print(ascii.decode(data));
        }
        break;
      case RawSocketEvent.write:
        socket.write(ascii.encode('GET /\r\nHost: example.com\r\n\r\n'));
        socket.writeEventsEnabled = false;
        break;
      case RawSocketEvent.readClosed:
        socket.close();
        break;
      case RawSocketEvent.closed:
        break;
      default:
        throw "Unexpected event $event";
    }
  });
}

属性

hashCode int
此对象的哈希码。
no setter继承
runtimeType Type
对象的运行时类型的表示。
no setter继承

方法

noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
继承
toString() String
此对象的字符串表示。
override

操作符

operator ==(Object other) bool
等于操作符。
继承

常量

closed → const RawSocketEvent
表示套接字已关闭的事件。
read → const RawSocketEvent
表示套接字已准备好读取的事件。
readClosed → const RawSocketEvent
表示从套接字读取已关闭的事件。
write → const RawSocketEvent
表示套接字已准备好写入的事件。