【发布时间】:2020-06-29 09:51:03
【问题描述】:
我正在尝试在 Flutter 中使用 udp 套接字作为服务器。我想将此套接字绑定到我的本地主机上的 6868 端口,始终处于监听状态。不幸的是,当我尝试从客户端发送内容时,它从不打印字符串“RECEIVED”。 代码如下:
static Future openPortUdp(Share share) async {
await RawDatagramSocket.bind(InternetAddress.anyIPv4,6868)
.then(
(RawDatagramSocket udpSocket) {
udpSocket.listen((e) {
switch (e) {
case RawSocketEvent.read:
print("RECEIVED");
print(String.fromCharCodes(udpSocket.receive().data));
break;
case RawSocketEvent.readClosed:
print("READCLOSED");
break;
case RawSocketEvent.closed:
print("CLOSED");
break;
}
});
},
);
}
我做错了吗?
反正这是客户端,写的是Lua:
local udp1 = socket.udp()
while true do
udp1:setpeername("192.168.1.24", 6868)
udp1:send("HI")
local data1 = udp1:receive()
if (not data1 == nil) then print(data1) break end
udp1:close()
end
我用另一台服务器对其进行了测试,它运行良好,所以我认为客户端不是问题。
谢谢!
【问题讨论】:
-
如果你在“switch(e)”之前打印一些东西,你会看到一些东西吗?
-
是的,打印效果很好
-
ok 尝试使用下面的代码,使用 udpSocket.receive()
标签: sockets flutter dart udp serversocket