Windowphone7.1 Socket编程

Windowphone7.1  版本新增的Socket编程的类在System.net.Socket命名空间下,Socket类实现了Socket编程的接口,SocketAsyncEventArgs类表示异步Socket操作,SocketException类发生Socket错误时引发的异常。

System.Net.Sockets 枚举类型

AddressFamily              指定 Socket类的实例可以使用的寻址方案。

ProtocolType               指定Socket类支持的协议。

SocketAsyncOperation  最近使用此对象执行的异步Socket操作的类型。

SocketClientAccessPolicyProtocol 指定用户下载Socket的实例将使用的策略文件的方法

SocketError 定义Socket错误代码

SocketShutdown  定义Socket.Shutdown方法使用的常量

 

SocketType  指定Socket类的实例表示的Socket类型

 

Socket类中的属性

Socket类中方法

SocketAsyncEventArgs类中的

//摘自msdn

SocketAsyncEventArgs 类別是 System.Net.Sockets.Socket 类別增强功能集合的一部分,提供另一种非同步模式,供專業化的高效能通訊端應用程式使用。 這個类別是特別針對需要高效能的網路伺服器應用程式所設計。 應用程式可以獨佔方式使用增强型非同步模式,或僅在目標區域中使用 (例如,在接收大量資料時)。

這些增强功能的主要特色,是能夠在大量非同步通訊端 I/O 期間,避免不斷重複配置和同步處理物件。 System.Net.Sockets.Socket class requires a System.IAsyncResult object be allocated for each asynchronous socket operation.' xml:space="preserve">目前由 System.Net.Sockets.Socket 类別實作的 Begin/End 設計模式,需要每一個非同步通訊端作業都配置一個 System.IAsyncResult 物件。

System.Net.Sockets.Socket class enhancements, asynchronous socket operations are described by reusable SocketAsyncEventArgs objects allocated and maintained by the application.' xml:space="preserve">在新的 System.Net.Sockets.Socket 类別增强功能中,非同步通訊端作業是由配置的可重複使用 SocketAsyncEventArgs 物件描述,並由應用程式維護。 高效能通訊端應用程式最了解必須維持的重疊通訊端作業量。 SocketAsyncEventArgs objects that it needs.' xml:space="preserve">應用程式可以視需要,建立不限數目的 SocketAsyncEventArgs 物件。 SocketAsyncEventArgs objects for that purpose.' xml:space="preserve">例如,如果伺服器應用程式隨時需要 15 個未處理的通訊端接受作業,以支援連入用戶端連線速率,它可以配置 15 個可重複使用的 SocketAsyncEventArgs 物件以達到此目的。

---------------------------------------------------------------------------------------------------------------------------------

执行异步的Socket操作的模式包含已下步骤:

   1.       配置新的 SocketAsyncEventArgs 对象,或者从应用程序池中获取一个这样的空闲对象。

2.针对该对象设置即将执行的操作所需的属性(例如附加到Completed事件的事件处理程序以及ConnectAsync方法的RemoteEndPoint属性)。

3.调用适当的Socket方法已启动异步操作。

4.如果异步Socket方法返回 true,则说明I/O操作处于挂起状态。操作完成时将引发传递给Socket方法的SocketAsyncEventArgs对象的SocketAsyncEventArgs .ComPleted事件。该事件在事件处理程序中引发时,将查询SocketAsyncEventArgs属性来获取完成状态和Socket操作结果。

5.如果异步Socket方法返回false通,则说明操作是同步完成的。 您可以查詢SocketAsyncEventArgs属性来获取完成状态和Socket操作结果。

6将SocketAsyncEventArgs重用于另一个操作,将它放回到应用程序池中,或者将它丢弃。。

原文地址:https://www.cnblogs.com/fxiaoquan/p/2630656.html