Windows Phone学习笔记(6) — — 套接字概述
Windows Phone 提供了一个使开发人员能够创建可以与使用套接字的 Internet 服务和其他远程应用程序进行通信的编程接口。在Windows Phone 应用程序中使用套接字,可以创建能够通过传输控制协议 (TCP) 或用户数据报协议 (UDP) 套接字与服务通信的丰富客户端应用程序。套接字是一种在应用程序或进程之间传递数据包或消息的机制。在编程术语中,套接字是一个针对 TCP/IP 协议堆栈的编程接口。套接字在网络上通过套接字地址进行标识,套接字地址是 Internet 协议 (IP) 地址和端口号的组合。
TCP:
- 若要通过 TCP 通信,必须在客户端和服务器之间建立连接。连接请求中必须定义客户端要与其进行通信的终结点。这是 Windows Phone 中的异步操作。
- 成功建立连接之后,客户端既可通过设置数据缓冲区并将其传递到服务器来向服务器发送数据。TCP 是基于流的协议,从而确保了数据接收顺序与数据发送顺序一致。TCP 协议兼顾传输顺序和可靠性。
- 客户端可以请求从服务器接收数据。这是一种异步调用,若调用成功,则所产生的回调将包含已发送的数据缓冲区。
- 最终,客户端断开套接字并关闭通信通道。
UDP:
- 通过 UDP 通信是无连接的,即无需在通信之前创建连接。
- UDP 套接字可以通过创建发送请求并将数据缓冲区传递到服务器来开始通信。无法保证服务器是否可以成功接收数据以及数据的接收顺序。若客户端确定需要此保证,则必须在客户端和服务器上自定义实现此保证。
- UDP 套接字可以通过“侦听”与该服务相关联的端口上的传入数据并进行相应处理来从服务接收数据。
- 客户端可以继续发送和接收数据。
- 此时,没有活动的套接字通道,因此发送到客户端的数据将丢失。
传输类型 | 示例使用 | 单播 | 任意源多播 | 源特定多播 | 广播 | 无连接或有连接 | 可靠通信 | |
TCP | 基于流 | 电子邮件、远程管理、文件传输和 Web | 是 | 否 | 否 | 否 | 面向连接 | 是 |
UDP | 数据报 | 流式多媒体、在线游戏和 Internet 电话服务 | 是 | 是 | 是 | 否 | 无连接 | 否 |
详情请参考:http://msdn.microsoft.com/zh-cn/library/hh202874(v=vs.92).aspx