【发布时间】:2022-01-13 18:57:15
【问题描述】:
现代编程变得越来越令人沮丧。尝试在 Flutter 上做一个简单的套接字测试应用程序(在 Android 上测试)。代码简单明了:
void Connect()
{
print("connecting...");
Socket.connect("localhost", 80).then((Socket sock) {
socket = sock;
socket?.listen(dataHandler,
onError: errorHandler,
onDone: doneHandler,
cancelOnError: false);
socket?.write("GET / HTTP/1.1");
}).catchError((Object e) {
print("Unable to connect: $e");
});
}
代码抛出异常。输出:
I/flutter (15930): connecting...
I/flutter (15930): Unable to connect: SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 47244
端口总是不同的,为什么会出现TF?
【问题讨论】:
-
您希望在 Android 设备的“localhost”的端口 80 上运行什么?您不想指定您希望 Android 设备上的应用程序连接到的服务器的 IP 地址吗?
-
另一个问题是您为什么要尝试使用
Socket进行HTTP 通信?dart:io中有HttpClient,你可以在 pub.dev 上找到多个包,这使得 HTTP/HTTPS 通信更容易。
标签: android flutter sockets dart