黑马程序员--多线程小结(下)
来源:互联网 发布:张晓蓬 知乎 编辑:程序博客网 时间: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培训、期待与您交流! ----------------------
- 黑马程序员--多线程小结(下)
- 黑马程序员-----多线程小结
- 黑马程序员---多线程小结
- 黑马程序员--多线程小结(上)
- 黑马程序员-多线程(下)
- 黑马程序员-Java多线程小结
- 黑马程序员--------------------多线程下
- 黑马程序员--HTML小结(下)
- 黑马程序员--ADO.NET小结(下)
- 黑马程序员 -->齐头并进完成任务--多线程(下)
- 黑马程序员 -->齐头并进完成任务--多线程(下)
- 黑马程序员_多线程(下)
- 黑马程序员_java_多线程总结(下)
- 黑马程序员——多线程(下)
- 黑马程序员——多线程(下)
- 黑马程序员--学习多线程和Socket小结
- 黑马程序员_多线程学习小结
- 黑马程序员_多线程(下)
- 测试管理001:测试有效性的评估与优化
- MySQL: 基于 Android 远程连接
- 一种强大、灵活的方法,通过游戏逻辑参数化的控制特效表现
- 一些建议
- poj2236并查集
- 黑马程序员--多线程小结(下)
- stm32(一) STM32的时钟部分
- 用Nvidia的PerfHud剖析《寻仙》
- 基于Eclipse开发环境的搭建及HelloAndroid示例程序的创建
- 编程语言与自然语言
- Android OpenGL ES 开发教程(27):材质及光照示例
- 用户空间与内核空间数据交换的方式(1)------debugfs
- 将Axis2开发的WebService发布到自己的应用中(补充)
- mysql SELECT语句执行顺序