java程序设计之网络编程基础教程

java程序设计之网络编程基础教程目录 网络编程概述 网络模型 TCP 协议 UDP 协议 TCP 编程 网络编程概述 什么是计算机网络 把分布在不同地理区域的计算机设备 通过物理线路连接起来 最终实现数据传输 资源共享 什么是网络编程

大家好,我是讯享网,很高兴认识大家。



目录

         📌 网络编程概述

📌 网络模型

         📌 TCP协议   

         📌 UDP协议

         📌 TCP编程


📌 网络编程概述


什么是计算机网络?

把分布在不同地理区域的计算机设备, 通过物理线路连接起来,最终实现数据传输, 资源共享.

什么是网络编程?

在网络的基础上,开发的程序能够进行数据传输.

java语言是支持网络的, 并且将网络连接的细节都封装起来了,对外提供一套网络库,就可以进行统一环境的网络编程

要进行网络数据传输的核心问题?

如何找java程序设计之网络编程基础教程到网络世界中的目标主机和程序?(IP和端口)

找到后如何高效安全的进行数据传输?(协议)

OK那就让我们带着这两个问题来一探究竟吧!


📌 网络模型

✎ " 理论有七层网络模型-----现实中是四层模型 "

                       应用层 —— 内容                           传输层 —— 加入协议控制  

                       网络层 —— IP                               物理层 —— 网线 光纤        


📖  网络通信的三要素: IP    端口号    通信协议

○ IP:

  • IP地址是指互联网协议地址, 可以理解为计算机的地址 ; 如 ipconfig 局域网IP 192.168 , 本机回环地址127.0.0.1 (访问自己电脑)

○ 端口号:

  • 计算机运行的每个程序都对应分配一个整数的编号, 不能重复 ; 范围: 0~65535 ;  一般0~1024已经被系统使用或保留,  例如MySQl的端口号是3306.

📖  端口对应程序   IP对应设备

○ 通信协议:

  • 是一种规范和约定,计算机网络中实现通信必须有一些约定,即通信协议;对速率,传输代码,代码结构,出错后如何应对...等制定规则.

📌 TCP协议   


Transmission Control Protocol  传输控制协议  

 安全可靠,但传输效率低

① 客户端向服务器端发送数据前,首先要建立连接(测试网络是否通畅)

三次握手

     1. 客户端向服务器发送连接请求

     2. 当服务器接收到客户端连接请求后,给客户端做出一个回应

     3. 客户端为服务器的回应再次做出确认回应    

② 正式传输数据

③ 断开时需相互确认

四次挥手

     1. 客户端向服务器发送一个断开请求

     2. 服务器向客户端做出一个回应

     3. 服务器端把没有传完的数据传输完毕,再向客户端做出回应

     4. 客户端向服务器端的回应做出回应

     断开...


📌 UDP协议


User Datagram Protocol 用户数据协议

• 把要发送的数据封装成一个数据包数据包包含数据、对方的IP、 对方端口。

• 只管发送即可,是否发送成功是不知道的 ( 由于没有建立连接,故发送信息成功与否不晓得 )

优点:不需要建立双方连接,传输速度快.

缺陷:由于没有建立连接,它是不安全的.


📌 TCP网络编程


✎ 搭建服务器

• new ServerSocket(端口)       

• ServerSocket中的accept()方法来监听客户端的连接(此时程序阻塞)

 
讯享网 

✎ 搭建客户端

•  new Socket(服务器IP,端口

讯享网

✎后续的操作就需要用到IO流

    在客户端输出一个字符串, 并转换为字节的形式写入程序

 

    在服务器输入客户端输出的字节,并将其转为字符串进行打印

讯享网

 进阶:实现单线程聊天

○ 我们通过while循环和Scanner控制台输入实现服务器与客户端交替聊天

○ 我们使用包装流DateInputStreamDateOutputStream来输入输出,可以直接读到一个字符串, 无需进行字符串与字节的转换.

 
 

📖 补充: 

✎ 本机回环地址:127.0.0.1

 获取服务器的IP  ( ipconfig 局域网IP 以 192.168 开头 )


小讯
上一篇 2024-12-25 09:32
下一篇 2025-01-03 07:07

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/2604.html