{博学谷学习记录} 超强总结,用心分享|狂野架构师前置-网络编程TCP基本概念及使用

该文详细介绍了TCP的概念,包括端口、协议的定义,重点解析了TCP的三次握手和四次挥手过程。接着,通过Java的网络编程实例展示了如何使用Socket和ServerSocket进行TCP通信,包括数据的发送和接收,同时提到了编程时的注意事项,如accept方法的阻塞性质和流的管理。
摘要由CSDN通过智能技术生成

本章节主要讲解TCP的相关概念及使用

目录

1 网络编程的TCP基本概念

1.1 端口,协议介绍:

1.2 TCP三次握手和四次挥手流程图

1.3 TCP的三次握手 总结

2 网络编程的TCP通讯实战

2.1 TCP通信程序-发送数据

2.2 ServerSocket 相关API

2.3 案例演示

2.4 TCP通信程序-接收数据

2.5 注意事项

总结

1 网络编程的TCP基本概念

1.1 端口,协议介绍:

端口:设备上应用程序的唯一标识

端口号:

用两个字节表示的整数,它的取值范围是0~65535。其中,0~1023之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要使用1024以上的端口号。如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败

协议:计算机网络中,连接和通信的规则被称为网络通信协议

1.2 TCP三次握手和四次挥手流程图

1.3 TCP的三次握手 总结

TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠

第一次握手,客户端向服务器端发出连接请求,等待服务器确认

第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求

第三次握手,客户端再次向服务器端发送确认信息,确认连接

完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。

由于这种面向连接的特性,TCP协议可以保证传输数据的安全,所以应用十分广泛。例如上传文件、下载文件、浏览网页等

四次挥手

 总结:

三次握手是为了建立可靠的数据传输通道,四次挥手则是为了客户端与服务双方都处理完毕业务的情况下进行成功的断开连接

2 网络编程的TCP通讯实战

2.1 TCP通信程序-发送数据

Java中的TCP通信

Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。

Java为客户端提供了Socket类,为服务器端提供了ServerSocket类

2.2 ServerSocket 相关API

Socket(InetAddress address,int port) 创建流套接字并将其连接到指定IP指定端口号

Socket(String host, int port) 创建流套接字并将其连接到指定主机上的指定端口号

相关方法

    InputStream  getInputStream()  返回此套接字的输入流

    OutputStream getOutputStream() 返回此套接字的输出流

2.3 案例演示

2.4 TCP通信程序-接收数据

相关API介绍

构造方法:ServletSocket(int port)

创建绑定到指定端口的服务器套接字

相关方法:Socket accept() 监听要连接到此的套接字并接受它

代码演示:

2.5 注意事项

1. accept方法是阻塞的,作用就是等待客户端连接

2. 客户端创建对象并连接服务器,此时是通过三次握手协议,保证跟服务器之间的连接

3. 针对客户端来讲,是往外写的,所以是输出流针对服务器来讲,是往里读的,所以是输入流

4. read方法也是阻塞的

5. 客户端在关流的时候,还多了一个往服务器写结束标记的动作

6. 最后一步断开连接,通过四次挥手协议保证连接终止

总结

TCP的核心概念就是三次握手跟四次挥手,大家能看明白即可扩展部分可以查阅官方文档

后续给大家介绍网络通讯更底层的知识

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值