我正在尝试使用 Windows.Networking.Sockets API 获得适用于 Windows Store 的基本接口。到目前为止,我有这个:
public async void Test()
{
using (var socket = new StreamSocket())
{
socket.Control.KeepAlive = false;
socket.Control.NoDelay = false;
await socket.ConnectAsync(new HostName("192.168.1.1"), "5555", SocketProtectionLevel.PlainSocket);
using (var writer = new DataWriter(socket.OutputStream))
{
writer.UnicodeEncoding = UnicodeEncoding.Utf8;
writer.WriteString("yea!");
//writer.WriteByte(0x50); //this doesn't work either to send raw ASCII
var t = writer.FlushAsync();
while (t.Status != AsyncStatus.Completed) ; //just in case?
}
}
}
到目前为止,我似乎确实获得了成功的连接和断开连接。但是,我从来没有收到任何文本。
我的 netcat 命令(在 OpenBSD 路由器下运行)
$ nc -lv 5555
如果我在运行 Test 函数时没有运行 netcat,它会抛出异常,所有这些都和预期的一样。我在这里做错了什么?