TCP学习之一:TCP网络编程概念
参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html
一、TCP
- 面向连接的(UDP是无连接的)
- 全双工,建立连接之后,双方都可以使用现有的连接收发数据
- 三次握手
二、 TCP属于传输层,应用层如何使用传输层的协议?
- 套接字分离应用层、传输层的接口
- 一方发起连接,另一方对本地端口帧听,连接建立后发起连接一方不需要再帧听
- 发起连接为客户端,帧听方为服务端
- TCPLietener持续监听端口,接收到连接请求后创建TCPClient,只有服务端在使用
- TCPClient用于接发数据
三、网络聊天的三种模式
1. UDP广播 + 点对点
- 每台终端都是服务器
- 某一台终端上线时,使用UDP进行广播,告知其它终端自己的位置(地址、端口)
- 各终端保持对端口侦听
2. 服务器模式一(服务器广播位置)
- 某一终端上线时,先连接服务器,服务器将终端的位置广播,终端之间建立连接,通信不经过服务器
- 各终端、服务器保持对端口的侦听
3. 服务器模式二
- 终端之间通信都经过服务器(qq聊天),服务器可缓存文件(QQ发送离线文件)
- 对于较大文件,临时搭建主机见的通信(QQ发送文件)
- 各终端不用帧听,服务器保持帧听