windows phone开发学习4:Socket编程总结
Socket编程:套接字,用于描述IP地址和端口 。用IP地址和端口号唯一确定
端口(TCP UDP是相互独立的,例如在TCP协议下有200号端口,在UDP协议下也可以有200号端口,且是相互独立的)
Socket之间的连接过程分为3个步骤:
1.服务器监听
2.客户端请求
3.连接确认
Windows phone应用程序Socket通信的过程包括7个步骤
1.创建一个客户端和服务器端的Socket连接
2.客户端发送消息,服务器端接受消息
3.客户端接受消息,服务器端发送消息
4.连接不断,重复2、3步骤
5.关闭发送接收通道,可以只关闭发送或接受通道,也可以同时关闭
6.关闭socket连接
7.整个通信过程到此终止
执行异步Socket操作的模式包含以下步骤:
1.分配一个新的SocketAsyncEventArgs对象,或者从应用程序池中获取一个这样的空闲对象
2.针对SocketAsyncEventArgs对象设置即将执行的操作所需要的属性:例如附加到Completed事件的事件处理程序以及ConnectAsync方法的RemoteEndPoint属性
3.调用适当的Socket方法以启动异步操作
4.如果异步Socket方法返回true,则说明I/O操作处于挂起状态。操作完成时,将引发传递给Socket方法的SocketAsyncEventArgs对象的SocketAsyncEventArgs.Completed事件。
5.如果返回的是false,说明操作时同步完成的。可以查询SocketAsyncEventArgs属性来获取完成状态和Socket操作结果
6.将SocketAsyncEventArgs重用于另一个操作,将它放回到应用程序池中,或者将它丢弃。
客户端一般步骤:
完成事件方法:
首先检查连接是否失败,失败处理
连接成功操作:
检测sock的上一个操作:然后确定其操作
如果上一个操作是连接:下一个操作就应该是发送数据
如果上一个操作是发送:显示发送成功的数据,下一个操作是接受数据
如果上一个操作是接收:显示接受到的数据,然后清理资源