【Java基础 下】 030 -- 网络编程
创始人
2024-05-31 12:15:06
0

目录

一、什么是网络编程

1、常见的软件架构(CS & BS)

①、BS架构的优缺点

②、CS架构的优缺点

2、小结

二、网络编程三要素

1、IP

①、IPv4

②、IPv6

③、小结

④、IPv4的一些细节

⑤、InetAddress的使用

2、端口号

3、协议

①、TCP & UDP

三、UDP通信程序

①、发送数据

②、接收数据

③、UDP练习(聊天室)

④、UDP的三种通信方式(单播、组播、广播)

四、TCP通信程序

1、书写代码步骤

2、代码细节

①、三次握手

②、四次挥手

③、小结

五、综合练习

1、TCP通信练习1 —— 多发多收

2、TCP通信练习2 —— 接收和反馈

①、示例代码:

②、小细节:(socket read结束标记)

3、TCP通信练习3 —— 上传文件

4、TCP通信练习4 —— 上传文件(文件名重复问题)

①、UUID类

②、示例代码

5、TCP通信练习5 —— 上传文件(多线程版)

6、TCP通信练习6 —— 上传文件(线程池优化)

7、TCP通信练习7 ——  BS(接收浏览器的消息并打印)

8、TCP通信练习7 —— 网络编程(课后大作业)


一、什么是网络编程

1、常见的软件架构(CS & BS)

①、BS架构的优缺点

优点:

缺点:

②、CS架构的优缺点

优点:

缺点:

2、小结

二、网络编程三要素

1、IP

①、IPv4

②、IPv6

③、小结

④、IPv4的一些细节

局域网IP举例:(利用局域网节省IP)

特殊的IP地址(回环地址):

自己给自己发数据的话,可以直接使用127.0.0.1,这是因为不同路由器分配的IP不固定,造成想要自己给自己发数据,IP也要跟着变

常用的CMD命令:

⑤、InetAddress的使用

InetAddress类表示互联网协议(IP)地址

示例代码:

2、端口号

3、协议

①、TCP & UDP

UDP适用于:在线视频、网络会议

TCP适用于:发送邮件、文字聊天

三、UDP通信程序

①、发送数据

示例代码:

②、接收数据

示例代码:

接收和发送端口要一致

这里发送的端口是随机的,你只需要保证要发送到的端口和接收端口一致即可

小细节:receive方法是阻塞的

③、UDP练习(聊天室)

示例代码:(发送端)

示例代码:(接收端)

允许多个发送端:(允许一个类可以运行多次)

④、UDP的三种通信方式(单播、组播、广播)

单播:1对1

组播:1对1组

广播:1对所有

代码实现:

组播发送端代码:

组播接收端代码:

广播代码:

四、TCP通信程序

1、书写代码步骤

示例代码:(发送数据 -- 客户端)

(接收数据 -- 服务端):

但上述代码会出现中文乱码的问题,那么如何解决这个问题呢?

【Solution】:接收端要结合编码表进行接收,使用转换流InputStreamReader,将字节流转换成字符流。同时,为了进一步提高读写的效率,我们可以在外面再包上一层缓冲流BufferedReader.

2、代码细节

①、三次握手

三次握手的过程是为了确保连接建立

②、四次挥手

四次挥手是为了确保连接断开,且数据处理完毕

③、小结

TCP挥手的时候,客户端会和服务端互发消息,其发送的数据包就是ICMP

五、综合练习

1、TCP通信练习1 —— 多发多收

示例代码:

Client

Server

2、TCP通信练习2 —— 接收和反馈

①、示例代码:

②、小细节:(socket read结束标记)

那么解决办法也很简单,写一个结束标记即可

3、TCP通信练习3 —— 上传文件

示例代码:

Client

Server

4、TCP通信练习4 —— 上传文件(文件名重复问题)

①、UUID类

示例代码:

但是我不想要横杠,应该如何处理:replace()替换

②、示例代码

与练习3相比,代码更改如下:

客户端代码没有任何修改

5、TCP通信练习5 —— 上传文件(多线程版)

示例代码:

Server

MyRunnable.java

客户端代码没有任何修改

6、TCP通信练习6 —— 上传文件(线程池优化)

示例代码:

Server

客户端代码没有任何修改

7、TCP通信练习7 ——  BS(接收浏览器的消息并打印)

示例代码:

Server

在浏览器中输入IP和端口号,BS架构中,浏览器其实就是客户端

8、TCP通信练习7 —— 网络编程(课后大作业)

服务器端在这里的作用就是【消息转发

完整需求可参见【网络编程课后大作业完整需求.md】

待补充~

实现效果:

相关内容

热门资讯

我的家乡大草原作文400字四... 我的家乡大草原作文400字四年级29篇 篇一:美丽的大草原我的家乡是一片美丽的大草原。大草原上绿草如...
神奇的魔法球四年级作文(最新... 神奇的魔法球四年级作文 篇一一天放学后,我在回家的路上发现了一个闪闪发光的球,它看起来非常神奇。我好...
我的榜样四年级作文(优选6篇... 我的榜样四年级作文 篇一我的榜样是我的爸爸。他是一个非常勤劳和有责任心的人。我记得有一次,我生病了,...
春风化雨润物无声抒情作文(优... 春风化雨润物无声抒情作文 篇一春天的来临,带来了温暖的春风和细雨,仿佛是大自然对万物的滋润和呵护。这...
我的妈妈四年级作文【实用6篇... 我的妈妈四年级作文 篇一我亲爱的妈妈妈妈是我最亲爱的人,她是我的好朋友,也是我的榜样。我非常喜欢和妈...
擦玻璃四年级作文200字【优... 擦玻璃四年级作文200字 篇一擦玻璃今天放学后,我回到家里看到妈妈正在擦玻璃。看到窗户上的灰尘,我忍...
游作文四年级400字【精选6... 游作文四年级400字 篇一我的暑假游记今年暑假,我和爸爸妈妈一起去了杭州旅行。这是我第一次去杭州,我...
我和孙悟空过一天四年级作文4... 我和孙悟空过一天四年级作文400字 篇一我和孙悟空过一天今天我和孙悟空一起度过了一个令人难忘的一天。...
四年级下册语文书词盘(推荐3... 四年级下册语文书词盘 篇一《小兔乖乖》词盘《小兔乖乖》是四年级下册语文书中的一篇课文,通过小兔乖乖的...
四年级下册作文(推荐5篇) 四年级下册作文 篇一:我的暑假生活我的暑假生活非常充实而有趣。虽然疫情的影响让我不能外出旅游,但我在...
游鹰嘴岩记四年级作文400字... 游鹰嘴岩记四年级作文400字 篇一游鹰嘴岩记我和家人去游鹰嘴岩的经历真是太让人难以忘怀了!鹰嘴岩位于...
游横店秦皇宫小学四年级作文4... 游横店秦皇宫小学四年级作文400字 篇一:探秘横店秦皇宫今天,我去横店秦皇宫参观了,真是被这座宫殿深...
我的同学-小学四年级写人作文... 我的同学-小学四年级写人作文 篇一我的同学小明我有一个非常好的同学,他的名字叫小明。小明是一个非常聪...
作文 好记性不如烂笔头【通用... 作文 好记性不如烂笔头 篇一好记性不如烂笔头,这是一句古训,意味着记忆力再好也不如写下来的好处。在我...
小学生作文四年级400字假期... 小学生作文四年级400字假期回顾 篇一我的暑假暑假终于来了,我迫不及待地迈入了一个充满欢乐和挑战的假...
美丽的安家沟四年级作文(精选... 美丽的安家沟四年级作文 篇一安家沟是我家乡一个美丽的小村庄,它位于山脚下,四周环绕着郁郁葱葱的树林,...
四年级童话作文(精选6篇) 四年级童话作文 篇一:《小兔子的冒险之旅》从前有一只可爱的小兔子,它叫小白。小白住在一个美丽的森林里...
小家庭大变化四年级作文【经典... 小家庭大变化四年级作文 篇一四年级的我,经历了一次小家庭的大变化。这个变化发生在我上小学的第一年,让...
小小动物园四年级作文【最新6... 小小动物园四年级作文 篇一我的家乡有一个小小动物园,里面有各种各样的动物,每次我去都会看到很多有趣的...
我的乐园四年级下册作文200... 我的乐园四年级下册作文200字 篇一我的乐园我家的后院是我的乐园,这里有我最喜欢的花草和小动物。每天...