JAVA编码(70)—— Java 基于TCP协议的SOCKET编程的通信

1、通信协议分成(基于TCP/IP参考模型)

IOS OSI参考模型 TCP/IP参考模型 描述
应用层(Application Layer) 应用层

Telnet\FTP\HTTP\SNMP等

表示层(Presentation Layer) ASCII\ASN.1\JPEG\MPEG等
会话层(Session Layer) NetBIOS\ZIP等
传输层(Transport Layer) 传输层 传输层协议的代表包含:TCP、UDP、SPX等
网络层(Network Layer) 网络层 网络层协议的代表包含:IP、IPX、RIP、OSPF等
数据链路层(Data Link Layer) 物理+数据链路层  
物理层(Physical Layer)  

 

2、 Socket编程顺序

  1. 创建服务器ServerSocket,在创建时,定义ServerSocket的监听端口(在这个端口接收客户端发来的消息)

  2. ServerSocket调用accept()方法,使之处于阻塞状态

  3. 创建客户机Socket,并设置服务器的ip及端口

  4. 客户机发出连接请求,建立连接

  5. 分别取得服务器和客户端Socket的InputStream和OutputStream

  6. 利用客户机Socket和服务器ServerSocket进行数据传输

 

3、 Tcp建立连接分为三步(三次握手)

  1. 客户端发送一个包含SYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;

  2. 服务器在接受到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被服务器接受,同时TCP序号被加一,ACK即确认(Acknowledgement)

  3. 客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。然后就可以进行数据传输了

 

4、 TCP协议与UDP协议特点

  1. TCP传输数据安全,稳定,效率相对较低。是面向连接的,就是当计算机双方通信时必须先建立连接,然后数据传送

  2. UDP传输数据不安全,效率高

 

posted @ 2019-01-24 10:47  xu_shuyi  阅读(138)  评论(0编辑  收藏  举报