2013-11-01 23 views
0

我在.NETSystem.Net.Socket.Socket.AcceptAsync等效在Silverlight

public static SocketAwaitable AcceptAsync(this Socket socket, 
               SocketAwaitable awaitable) 
    { 
     awaitable.Reset(); 
     if (!socket.**AcceptAsync(awaitable.EventArgs))** 
      awaitable.WasCompleted = true; 
     return awaitable; 
    } 

移植此代碼到Silverlight的結果在此錯誤

錯誤1「這個方法System.Net .Sockets.Socket'不包含'AcceptAsync'的定義,而最佳擴展方法重載'SLAsyncAwaitSocketProxy.SocketExtensions.AcceptAsync(System.Net.Sockets.Socket,SLAsyncAwaitSocketProxy.SocketAwaitable)'有一些無效參數

據我所知,silverlight沒有System.Net.Socket.Socket.AcceptAsync。有什麼可以使用的等效方法嗎?有什麼建議?

回答

3

Accept用於接收傳入的套接字連接;由於安全原因,Silverlight或大多數其他託管平臺上無法實現此功能。

你需要從您的Silverlight應用程序連接到服務器來代替。一旦建立連接,數據就可以雙向流動。

一個可能的選擇是SignalR。

+0

謝謝。有道理。我正在盲目地將一個.net文件移植到Silverlight中。順便說一句,在我的異步等待socket編程的研究中,我確實遇到了你的博客。非常好,信息豐富。 –

相關問題