【发布时间】:2019-02-01 09:13:02
【问题描述】:
我遇到了一个错误
未处理的异常:NoSuchMethodError:在将字符串发送到 socket.write 时,方法 'write' 在 null 上被调用。
另一方面,如果我将标准输入连接到套接字,则可以正常工作。在下面的代码中,如果您评论 socket.write('$_request\r\n');并取消注释 stdin.listen((data) => 你会看到一切正常。
String _request = "Hello World";
是硬编码的,但它可能来自互联网或其他客户端。我尝试遵循一些示例,但无法理解为什么 stdin.listen 有效而不是标准字符串。
所以我的问题是如何将标准输入套接字转换为 Dart 中的请求套接字?
这是@Gazi 的工作代码帮助:
更新:
Socket.connect("192.168.22.120", 3000)
.then((Socket sock) {
socket = sock;
socket.listen(dataHandler,
onError: errorHandler,
onDone: doneHandler,
cancelOnError: false);
}).then((_) {
print(_request); // so that your code runs AFTER the TCP/IP connection
socket.write('$_request\r\n');
})
.catchError((AsyncError e) {
print("Unable to connect: $e");
exit(1);
});
【问题讨论】:
标签: sockets dart request stdin