黑马程序员--多线程小结(下)

来源:互联网 发布:张晓蓬 知乎 编辑:程序博客网 时间:2024/05/22 11:45

---------------------- 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.客户端的Socket1.客户端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培训、期待与您交流! ----------------------


原创粉丝点击