JAVA网络编程

JAVA 网络编程 文章目录1. 网络编程2.计算机网络基础知识2.1 计算机网络:2.2 网络通讯的要素2.3 IP地址2.3.1 IP地址的分配2.3.2 IP地址的分类3. 端 口4. 常用默认端口5.网络通信协议/接口6. OSI的七层模型7. TCP协议8. IP协议(Internet Protocol/因特网互联协议)是网络上的计算机进行连接的基础9. TCP/IP协议9.1 InetAddressSoc... 阅读详情

JAVA网络编程

网络编程三要素:

  • IP地址:InetAddress 
    网络中设备的标识,不易记忆,可用主机名
  • 端口号 
    用于标识进程的逻辑地址,不同进程的标识
  • 传输协议 
    通讯的规则 常见协议:TCP,UDP

相关知识点:

在网络编程三要素中,有很多相关的需要了解的: 
关于Ip地址:

ip地址是网络中计算机的唯一标识 
计算机只能识别二进制的数据,所以我们的ip地址应该是一个二进制的数据 
eg:ip:192.168.1.100 
换算 1100000 10101000 00000001 01100100 
计算机在配置ip地址的时候把ip地址的每一个字节上的数据换算成十进制,然后用.分开来表示 “点分十进制”

IP地址的组成:网络号段+主机号段 
A类:第一号段为网络号段+后三段的主机号段 
一个网络号段可分配 256256256 = 16777216台主机 
B类:前二号段为网络号段+后二段的主机号段 
一个网络号段可分配 256*256 = 65536台主机 
C类:前三号段为网络号段+后一段主机号段 一个网络号段可分配 256台主机 
D类 E类 保留号段

A类 1.0.0.1--127.255.255.254   
B类 128.0.0.1--191.255.255.254   
C类 192.0.0.1--223.255.255.254
D类 224.0.0.1-239.255.255.254
E类 240.0.0.1--247.255.255.254   

私有号段:在互联网中不可用,在局域网中可用
10.x.x.x 
172.16.0.0-172.31.255.255   
192.168.x.x是私有地址
特殊的ip地址 回环地址   
127.0.0.1   
x.x.x.255 广播地址
x.x.x.0 网络地址

网络模型

计算机网络之间以何种规则进行通信,就是网络模型研究问题。 
网络模型一般是指

    OSI(Open System Interconnection开放系统互连)参考模型
    TCP/IP参考模型

API

InetAddress

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

static InetAddress[] getAllByName(String host) 
          在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。 
static InetAddress getByAddress(byte[] addr) 
          在给定原始 IP 地址的情况下,返回 InetAddress 对象。 
static InetAddress getByAddress(String host, byte[] addr) 
          根据提供的主机名和 IP 地址创建 InetAddress。 
static InetAddress getByName(String host) 
          在给定主机名的情况下确定主机的 IP 地址。 



static InetAddress getLocalHost() 
          返回本地主机。 

 boolean isReachable(int timeout) 
          测试是否可以达到该地址。 
 boolean isReachable(NetworkInterface netif, int ttl, int timeout) 
          测试是否可以达到该地址。 

端口号

正在运行的程序的标识 也就是进程的标识

  • 物理端口 网卡口
  • 逻辑端口 我们指的就是逻辑端口 
    A:每个网络程序都会至少有一个逻辑端口 
    B:用于标识进程的逻辑地址,不同进程的标识 
    C:有效端口:0~65535,其中0~1024系统使用或保留端口。

协议

通信的规则

UDP

* 概述:   
  将数据源和目的封装成数据包中,<font color = red>不需要建立连接;每个数据报的大小在限制在64k</font>;因无连接,是不可靠协议;不需要建立连接,速度快

DatagramSocket

此类表示用来发送和接收数据报包的套接字。

构造方法
  • DatagramSocket(int port, InetAddress laddr) 
    创建数据报套接字,将其绑定到指定的本地地址。
  • DatagramSocket() 
    构造数据报套接字并将其绑定到本地主机上任何可用的端口。
发送数据方法
  • void receive(DatagramPacket p) 
    从此套接字接收数据报包。 此方法在接收到数据报前一直阻塞。数据报包对象的 length 字段包含所接收信息的长度。如果信息比包的长度长,该信息将被截短。

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

DatagramPacket

此类表示数据报包。

构造方法
  • DatagramPacket(byte[] buf, int length) 
    构造 DatagramPacket,用来接收长度为 length 的数据包。

  • DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。

    解析
  • byte[] getData() 返回数据缓冲区。
  • int getLength() 返回将要发送或接收到的数据的长度。
Exception

java.net.BindException :Address already in use:Cannot bind 
多次启动接收端会导致端口被占用

TCP

 * 概述   
    建立连接,形成传输数据的<font color = red>通道</font>;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低

Socket

客户端 Socket

此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。

  • Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
  • Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。

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

  • void shutdownInput() 此套接字的输入流置于“流的末尾”。 指定输入流已经结束

  • void shutdownOutput() 输出流结束

服务端 ServerSocket
  • ServerSocket() 创建非绑定服务器套接字。
  • ServerSocket(int port) 创建绑定到特定端口的服务器套接字。

  • Socket accept() 侦听并接受到此套接字的连接。返回一个连接对应的socket对象

Socket通信

  • Socket套接字: 
    网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。

socket包含了IP地址+端口 指定目的地的应用程序

  • Socket原理机制: 
    通信的两端都有Socket。 网络通信其实就是Socket间的通信。 数据在两个Socket间通过IO传输。
java网络编程 通信双方地址IP端口号一定的规则(即:网络通信协议。有两套参考模型)OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。 阅读详情

相关推荐

组态王|通过日历控件选择时间段查询历史报警

哈喽,你好啊,我是雷工!这节记录下查询历史报警信息的功能实现。以下为实现笔记。

做有价值的事,积累有价值的笔记! 3762

【Java网络编程详解】

Java网络编程是开发分布式应用程序的重要技能,它通过套接字(Socket)进行数据传输,支持TCP和UDP协议。本文将介绍Java网络编程的基础知识,包括Socket、ServerSocket、TCP通信、UDP通信、常用类和示例代码。网络编程是指在计算机之间通过网络进行数据传输和通信的编程方式。Java提供了强大的java.net包,封装了底层的网络协议,简化了网络编程。:面向连接,可靠传输,保证数据按序到达,适合文件传输、Web通信等。:面向无连接,不可靠但速度快,适合视频通话、广播消息等。

武帝为此的博客 958

1020空心杯电机驱动设计与ESP32实战

空心杯电机是一种高动态响应的直流微特电机,其驱动本质是解决电感负载下的大di/dt启动、反电动势耦合与电流纹波抑制问题。核心原理在于建立包含内阻、电感和反电动势的等效电路模型,并据此匹配开关器件、PWM参数与采样闭环。技术价值体现在小体积下实现毫秒级响应、低噪声(>30kHz)、高精度电流保护(±50mA)及热鲁棒性。典型应用于微型航模、手持云台与精密执行器等对功率密度和动态性能敏感的嵌入式系统。本文以1020规格空心杯电机为对象,基于ESP32平台完成从MOSFET选型、32kHz硬件PWM生成到INA2

weixin_42298164的博客 582

Java网络编程

Java网络编程 1、网络编程 1.1、概述 1、计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口我们可以很方便地进行网络编程。 2、Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序。 3、Java提供的网络类库,可以实现无痛的网络连

laizhenghua的博客 1万+

从零到一:高通QCS6490边缘AI开发板的Linux生态构建与实战避坑指南

本文详细介绍了在高通QCS6490边缘AI开发板上构建Linux生态系统的完整流程,包括开发环境准备、系统镜像构建与烧录、AI运行时环境配置、模型部署优化以及性能调试。重点解析了如何利用Hexagon DSP的高达12 TOPS AI算力,并提供了实战中的避坑指南和性能优化技巧,帮助开发者高效实现边缘AI应用从概念验证到产品落地的全过程。

eee77的博客 770

华为od统一考试B卷【单词搜索】C++ 实现

找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。意区分英文字母大小写,并且您只能上下左右行走,不能走回头路。

MISAYAONE的博客 709

Java语言的网络编程

Java网络编程是一个庞大而复杂的领域,从基本的Socket编程到高级的HTTP处理,Java提供了丰富的工具和类库供开发者使用。了解并掌握Java网络编程,可以帮助开发者构建可靠、高效的网络应用。随着技术的不断发展,网络编程的方法和工具也在不断进步,开发者应保持学习的热情与敏锐的观察力,跟上时代的步伐。希望通过本文的讲解,能帮助您对Java网络编程有更深的理解和认识。无论是构建简单的客户端-服务器模型,还是开发复杂的Web应用,Java都能提供强大的支持。

xiaocaibao777的博客 1218

Python 实战:手语翻译系统——从视频到文本的智能转换

今天,我们用 Python 构建了一个。

Echo_Wish 343

Java基础之Java网络编程详解

网络编程是现代软件开发中不可或缺的一部分,它通过网络实现了计算机之间的通信,使得信息交换和数据共享成为可能。在网络通信的实现过程中,语言的选择和工具的使用至关重要,而Java提供了强大的支持,使得开发者可以更便捷地构建网络应用程序。网络通信的核心是数据的发送与接收,而Java的网络编程模型为此提供了一套易用且高效的工具。无论是点对点的通信,还是基于更复杂协议的多节点交互,Java都能满足需求。在网络编程中,基础的通信模式是基于Socket的点对点连接,它可以实现客户端和服务器之间的直接通信。

道可道非常道 2065

2025年华为杯D题:低空湍流监测及最优航路规划思路与Matlab实现

2025年华为杯D题:低空湍流监测及最优航路规划思路与Matlab实现

前程算法屋的博客 772

华为OD面试八股真题 - 操作系统 - 1

华为OD技术面,操作系统相关八股真题提供详细解答,这篇博客主要涉及于进程和线程相关知识点

qq_45776114的博客 1633

十二、Java网络编程

文章目录十二、Java网络编程1.网络编程入门1.1 网络编程概述【理解】1.2 网络编程三要素【理解】1.3 IP地址【理解】1.4InetAddress【应用】1.5端口和协议【理解】2.UDP通信程序2.1 UDP发送数据【应用】2.2UDP接收数据【应用】2.3UDP通信程序练习【应用】3.TCP通信程序3.1TCP发送数据【应用】3.2TCP接收数据【应用】3.3TCP通信程序练习【应用】3.4TCP通信程序练习【应用】3.5TCP通信程序练习【应用】3.6TCP通信程序练习【应用】3.7TCP通

汪随安的博客 2917

华为OD机试双机位C卷:字符串计数匹配 (C/C++/Py/Java/Js/Go)

华为OD机试双机位C卷 字符串计数匹配,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。 华为OD机试 字符串计数匹配, 华为OD上机考试 - 字符串计数匹配。

qq_45776114的博客 1647

【Java 基础】Java 网络编程

Java的网络编程是指使用Java语言进行网络通信的编程技术。在Java中,可以使用Socket和ServerSocket类来实现基于TCP协议的网络通信,也可以使用DatagramSocket和DatagramPacket类来实现基于UDP协议的网络通信。

激流丶的博客 1890

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java—— 网络编程

什么是网络编程 常见软件架构 网络编程三要素:IP:InetAddress。端口号。协议:UDP协议,TCP协议

zjy_ccccc的博客 1254

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java 之网络编程

本文详细讲解了 Java 网络编程的基础知识和实战代码,包括 TCP 和 UDP 的区别、网络编程的三要素以及使用 Socket 和 DatagramPacket 类实现网络通信。希望这些内容能够帮助各位看官深入了解 Java 网络编程。

weixin_64178283的博客 1834

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java 网络编程

Java通过java.net和java.nio包提供网络编程支持,支持TCP和UDP协议。TCP使用Socket实现可靠连接通信,包含ServerSocket(服务端)和Socket(客户端);UDP通过DatagramSocket实现无连接通信。示例代码展示了基本的TCP/UDP服务端与客户端实现流程,包括建立连接、数据收发等关键步骤。此外,Java还提供HttpURLConnection类专门处理HTTP协议通信,可方便地发起HTTP请求。这些API为开发网络应用提

weixin_73916358的博客 564

12 java网络编程

网络编程章节,主要是把IO流的知识使用在网络上,用于网络传输。 网络传输其实也是一种IO流的方式。

qq_34106499的博客 415
上一篇: JAVA设计原则与设计模式
下一篇: 学习Android Activity管理与控制
ProbuINg
博客等级 码龄14年 10粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值