4

我最近使用 WPF 和 C# 为 Windows 桌面开发了一个 TCP 客户端-服务器应用程序。现在,我正在考虑将其移植到 Windows 8 Metro App。

但是,似乎 System.Net.Sockets 命名空间在 Metro Apps 的 SDK 中不存在。(所以我不能使用 TcpListener、TcpClient 等)我也找不到工作示例。

是否可以将 TCP-IP 服务器创建为 Windows 8 Metro 应用程序(使用一些不同的方法)?是否有任何第三方库(最好是免费和开源的)来实现这一点?

请帮我。提前致谢。

4

1 回答 1

2

建议改用StreamSocket类。

这是来自 MSDN的示例。


套接字通过 TCP 提供发送和接收,而StreamSocketListener将侦听传入的 TCP 连接。

这是我的想法:

首先我们需要一个 StreamSocketListener 的实例。

private StreamSocketListener _listener = new StreamSocketListener();

然后启动侦听器连接接收到的事件处理程序并绑定服务名称。

_listener.ConnectionReceived += listenerConnectionReceived;
await _listener.BindServiceNameAsync("localServiceName");

如果localServiceName参数为空字符串,则系统将选择要绑定的本地 TCP 端口。MSDN

现在我们必须接收连接:

        void listenerConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
        {
            Console.WriteLine(string.Format("Recive connection from {0}", args.Socket.Information.RemoteHostName.DisplayName));
        }

顺便说一句:我为此做了很多研究,还没有时间(以及 Windows 8 METRO 开发环境)来表达我的想法。希望我能尽快做到这一点。这真的让我很烦。(德语/英语);)

于 2013-06-27T11:41:44.873 回答