首页 > 编程语言 >零基础学Java第二十三天之网络编程Ⅱ

零基础学Java第二十三天之网络编程Ⅱ

时间:2024-05-26 21:59:29浏览次数:15  
标签:UDP Java 第二十三 报包 编程 TCP 3.1 服务端 客户端

1. InetAddress类

用来表示主机的信息

练习:

C:\Windows\system32\drivers\etc\ hosts

一个主机可以放多个个人网站

www.baidu.com/14.215.177.37

www.baidu.com/14.215.177.38

www.taobao.com/183.61.241.252

www.taobao.com/121.14.89.253

2. Socket

3. TCP编程

API:Socket,ServerSocket

客户端(发送一个请求) 服务端(接收到这个请求,给予响应)

*案例驱动学习:*

3.1. 简单的TCP通信

3.1.1. 编写服务端程序

3.1.2. 编写客户端程序

3.1.3. 客户端向服务端发送请求信息,服务端成功接收

3.1.4. 服务端向客户端发送响应信息,客户端成功接收

3.2. 升级服务端,使其处理多个客户端请求

3.3. 继续优化服务端,让多个客户端的请求无需排队

3.4. 关闭资源-提取工具类

4. TCP案例

任务:

1.基本操作

2.传递文件

3.一对一聊天

4.优化一对一聊天

5. TCP三次握手 和 四次挥手

三次握手·
在这里插入图片描述
四次握手

在这里插入图片描述

6. UDP编程

1.简介

UDP(User Datagram Protocol)用户数据报包协议,UDP和TCP位于同一层-传输层,但它对于数据包的顺序错误或重发没有TCP可靠;UDP是一种面向无连接的通信协议。UDP向应用程序提供一种发送封装的原始IP数据报的方法,并且发送时无需建立连接,不保证可靠数据的传输

UDP — 发短信

TCP — 打电话

*案例:*

6.1. 简单的UDP通信

6.2. 可以一对一随便聊,而且读写分离

2.TCP VS UDP (学习后自行比对)

TCP UDP

是否连接 面向连接 无面向连接

传输可靠性 可靠 不可靠

应用场合 传输大量数据 少量数据

速度 慢 快

3.所需学习类

DatagramPacket —此类表示数据报包

DatagramSocket —此类用来发送和接受数据报包的套接字

SocketAddress getLocalSocketAddress() 返回此套接字绑定的端点的地 址,如果尚未绑定则返回 null。

Void send(DatagramPacket p) 从此套接字发送数据报包。

Void receive(DatagramPacket p) 从此套接字接收数据报包。

MSITStore:C:\Users\apple\Desktop\JDK1.5API_CN(全).CHM::/java/net/…/…/java/net/DatagramPacket.html) p) 从此套接字接收数据报包。

SocketAddress —抽象类,IP+端口号

标签:UDP,Java,第二十三,报包,编程,TCP,3.1,服务端,客户端
From: https://blog.csdn.net/qq_53720725/article/details/139221534

相关文章

  • 分析JAVA打印流的自动刷新
    参考:https://blog.csdn.net/xshsjl/article/details/77076235参考:https://blog.csdn.net/weixin_43369921/article/details/111397253今天遇到了一个奇怪的事情,使用打印流,有一个自动刷新的参数,但设不设置结果貌似没啥影响,下面来研究研究publicPrintStream(OutputStreamout,......
  • UNiX强大的操作系统和编程环境
    Android设计模式一:EIT造型什么是EIT 造型?EIT造型,一种比类的范围更大,比模式(Pattern)稍微小的一种新的代码造型。造型的模型EIT造形是一种基本的结构(Structure),一种概念(Concept);我们称它为”EIT造形(Form)”。参考:https://www.cnblogs.com/myEIT/articles/3294583.html......
  • (读后分享)移动Web前端高效开发实战:HTML 5 + CSS 3 + JavaScript + Webpack + React Nat
    链接:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoHTML5新特性与应用:介绍HTML5的新特性,包括语义化标签、本地存储、设备兼容、连接特性等,并讲解如何在移动Web前端开发中充分利用这些特性提升用户体验。CSS3样式与动画设计:详细讲解CSS3的样式设计和动画效果,包......
  • 【Java笔记】第8章:面向对象的三大特性(封装、继承、多态)
    前言1.三大特性概述2.封装3.继承4.多态结语#include<GUIQU.h>intmain{上期回顾:【Java笔记】第7章:面向对象个人主页:C_GUIQU归属专栏:【Java学习】return一键三连;}前言各位小伙伴大家好!上期小编给大家讲解了Java中的面向对象,接下来讲讲Java中面向......
  • idea启动报错:java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory
    文章目录一、问题二、解决方法一、问题问题描述:idea整合Mybatis-plus的时候,启动报错:java.lang.NoClassDefFoundError:org/mybatis/logging/LoggerFactory二、解决方法可能原因:仔细检查了一下,发现mybatis-spring-boot-starter的包和mybatis-plus-boot-starter的......
  • JDBC & 数据库连接池:详述Java 数据库操作的基础,数据库连接池的使用以及原理,比较常用数
    JDBC基础 JDBC的定义和目的 JDBC(JavaDatabaseConnectivity)是一个用于执行SQL语句的JavaAPI,可以与多种关系数据库进行交互,这的API由一组用Java语言编写的类和接口组成。 JDBC鼓励供应商使用JDBC驱动程序,该驱动程序可以通过数据库管理系统的客户机接口与各个数......
  • Java常用的三个方法 `wait ` `notify` `notifyAll`
    常用的三个方法waitnotifynotifyAllwait();方法使当前线程进入等待状态,直到另一个线程调用该对象的notify()或notifyAll()方法来唤醒它notify();方法唤醒在该对象上调用wait()方法进入等待状态的一个线程,如果有多个线程在等待,则只会唤醒其中一个线程。notifyAll();方......
  • Java队列简介
    在现代应用程序开发中,队列是一种常见且强大的数据结构,用于存储和管理待处理的任务序列。结合MySQL数据库,我们可以利用队列实现任务的持久化存储与高效处理。本文将通过四个案例,详细介绍如何在Java中使用队列,并结合MySQL数据库实现数据的存储与检索,涵盖基础队列操作、消息队列......
  • Java项目:基于SSM框架实现的社区服务管理系统分前后台(ssm+B/S架构+源码+数据库+毕业论
    一、项目简介本项目是一套基于SSM框架实现的社区服务管理系统包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,eclipse或者idea确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值二、技术......
  • Java异常中throw 与throws的区别
    throw与throws区别在Java中,throws和throw是两个不同的关键字,它们在异常处理中起着不同的作用。throws关键字:throws用于声明一个方法可能会抛出的异常。当一个方法可能会抛出异常时,我们需要使用throws关键字在方法签名中声明这些异常。这样,调用该方法的代码就需要处理这些异......