---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
----------------------Socket相关概念---------------------
Socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其实就是两个进程通信用的)
Socket非常类似于电话插座。以一个电话网为例。电话的童话双方相当于互相通信的2个程序,电话号码就是IP地址。任何用户在通话之前,首先要占有一部电话机,相当于对方有一个固定的Socket。然后向对方拨号呼叫,相当于发出连接请求。对于假如在场并空闲,拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一方电话机发出信号和对方从电话机接收信号的过程,相当于想Socket发送数据和从Socket接收数据。通话结束后,一方挂起电话机相当于关闭Socket,撤销连接。
在Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供集中服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务(应用程序)。
例如:HTTP使用80端口 FTP使用21端口 SMTP使用23端口
有两种类型(TCP、UDP):
1.流式Socket(Stream):
是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低。
2.数据包式(DataGram):
是一种无连接的Socket,对应于无连接的UDP服务应用。不安全(丢失,数序混乱,
在接收端要分析重排及要求重发),但效率高。
//Socket一般应用模式
1.服务器端的Socket(至少需要两个)
1. 一个负责接收客户端连接请求(但不负责与客户端通信)
2. 没成功接收到一个客户端的连接便在服务端产生一个对应的Socket
>在接收到客户端连接时创建。
>为每个连接成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信)。
2.客户端的Socket
1.客户端Socket
>必须指定要连接的服务端地址和端口。
>通过创建一个Socket对象来初始化一个到服务器端的TCP连接。
//Socket的通许过程
1.服务器端:
>申请一个Socket
>绑定到一个IP地址和一个端口上
>开始监听,等待接受链接
2.客户端:
>申请一个Socket
>连接服务器(指明IP地址和端口号)
3. 服务器端接到连接请求后,产生一个新的Socket(端口号大于1024)与客户端建立连接并进行通讯,原监听Socket继续监听。
-----------------------扩展 发送文件---------------------
1. 实现传送文件
2. 如果接收数据是文件还是文本?
3. 设计“协议”:
>把要传递的字节数组前面都加上一个字节作为标识。//0:表示文字 1:表示文件
>即: 文字:0+文字(字节数组表示)
>文件:1+文件的二进制信息
---------------------- Windows Phone 7手机开发 、 .Net培训 、期待与您交流! ----------------------