如何通过Dart套接字发送修改后的字节?

时间:2019-04-01 17:17:38

标签: sockets dart byte codepages

我有一个如下所示的数据。

List<int> bytes: [231, 199, 287, 286, 305, 304, 351, 350, 246, 214, 252, 220, 13, 10];

我相信我必须使用 socket.add(bytes);但是我不确定这是否正确。

主要目标是不向服务器发送任何编码的字符串,看来我可以通过以字节发送来实现。

以上字节将替换为 IBM CP850 代码页(字节)。

示例:[231]将替换为[167]。我对此没有任何问题。

也有文档指出,如果此调用生成了错误,我需要使用flush并完成操作。

有人知道这个很好的例子吗?

注意:对于字符串,我使用以下代码。但是我需要修改代码以将字节发送到套接字。

 _socket = await Socket.connect('192.168.22.120', 3000);
  _socket.handleError((data) {
    _secureResponse = "$_errorData}";
  });

  await for (var data in _socket) {
    _reply = new String.fromCharCodes(data).trim();

    int dataLen;
    dataLen = _reply.length;

    int carriageReturnPosition;
    carriageReturnPosition = dataLen - 2;

    int newLinePosition;
    newLinePosition = dataLen - 1;

    if (_reply.substring(carriageReturnPosition, newLinePosition) == '\r' &&
        _reply.substring(newLinePosition, dataLen) == '\n') {
      _socket.close();
    }
  }

0 个答案:

没有答案