使用C#编写的Windows 8 XAML应用程序中的TCP服务器

4
我最近使用WPF和C#为Windows桌面开发了一款TCP客户端-服务器应用程序。现在,我想将它移植到Windows 8 Metro应用程序。
但是,在Metro应用程序的SDK中似乎没有System.Net.Sockets命名空间。 (因此我不能使用TcpListener、TcpClient等) 我也找不到可行的示例。
有可能创建一个TCP-IP服务器作为Windows 8 Metro应用程序(使用一些不同的方法)吗? 是否有任何第三方库(最好是免费且开源的)可用于完成此操作?
请帮帮我。 提前感谢您的帮助。

你看过 http://msdn.microsoft.com/library/windows/apps/BR226882 吗? - Max
它起作用了吗?如果正确,请标记我的答案 :) - Smartis
1个回答

2
建议使用StreamSocket类。
这里有一个来自MSDN的示例
一个socket提供了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 开发环境)来证明我的想法。希望我很快能够做到这一点。这真的很困扰我。(德语/英语);)

谢谢回复,抱歉回复晚了!:-)我尝试使用StreamSocket类,但无法使用它创建TCP套接字侦听器(或服务器)。但是,我成功地使用此类创建了TCP客户端。你能帮我找到一个使用StreamSocket类创建TCP服务器的代码示例吗? - Shrayansh Sharma
@ShrayanshSharma 做了一些更改。 - Smartis
非常感谢。它起作用了!但是,我该如何读取来自客户端发送的内容(字符串)?我想将其保存在一个字符串中。 - Shrayansh Sharma
1
太棒了!我成功读取了客户发送的内容。非常感谢你的帮助! :-) - Shrayansh Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接