2013-06-27 40 views
4

我最近爲Windows桌面開發了一個使用WPF和C#的TCP客戶端 - 服務器應用程序。 現在,我正在考慮將它移植到Windows 8 Metro App。C#中的TCP服務器Windows 8 XAML應用程序

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

是否可以創建一個TCP-IP服務器作爲Windows 8 Metro應用程序(使用一些不同的方法)? 是否有任何第三方庫(免費和開放源代碼,最好)可以實現這一目標?

請幫幫我。 在此先感謝。

+0

你看http://msdn.microsoft.com/library/windows/apps/BR226882? – Max

+0

它工作?請標記我的答案,如果它是正確的:) – Smartis

回答

2

建議使用StreamSocket類代替。

這是來自MSDN的Example


套接字提供發送和接收通過TCP和StreamSocketListener將監聽進入的TCP連接。

這裏是我的想法:

首先,我們需要StreamSocketListener的實例。

private StreamSocketListener _listener = new StreamSocketListener(); 

然後啓動監聽器連接一個連接收到事件處理程序並綁定服務名稱。

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

如果localServiceName參數爲空字符串,則系統將 選擇要在其上結合本地TCP端口。 MSDN

現在我們必須recive連接:

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

BTW:我做了很多的這種研究,並沒有離開的時間(和Windows 8的METRO開發環境)教我的想法。希望我能儘快得到這個。它真的讓我感到困擾。 (德文/英文);)

+0

感謝您的回覆,並對遲到的迴應感到抱歉! :-) 我試過使用StreamSocket類,但我無法用它來創建一個TCP套接字監聽器(或服務器)。但是,我成功地使用這個類創建了一個TCP客戶端。你能幫我找到一個代碼示例來創建一個使用StreamSocket類的TCP服務器嗎? –

+0

......我試圖找到一個解決方案。發現本地主機的代碼... – Smartis

+0

@ShrayanshSharma做了一些改變。 – Smartis

相關問題