当前位置: 首页 > news >正文

JavaSE: 网络编程

1.1 概述

java程序员面对统一的网络编程环境

B/S 架构 和 C/S架构

1.2 网络通信的两个要素

  1. 通信双方的地址:ip + 端口号

  1. 网络通信协议:TCP/IP协议(事实上的国际规则)、OSI模型(理想化)

1.3 Inet Address

本地回环地址(hostAddress):127.0.0.1

主机名(hostName):localhost

IP地址分类

分类一:

ipv4:4个字节,即4个0-255,

ipv6:16个字节,写成8个无符号整数,

分类二:

公网地址:万维网使用

私有地址:198.168开头的,专为组织机构内部使用

InetAddress类

www.baidu.com => DNS解析(150.194.117.44)=> 本机host文件判断是否有域名地址 =>DNS服务器找主机

    public static void main(String[] args) {try {// 获取指定IP地址InetAddress inetAddress1 = InetAddress.getByName("192.168.1.1");System.out.println(inetAddress1); ///192.168.1.1InetAddress inetAddress2 = InetAddress.getByName("www.baidu.com");System.out.println(inetAddress2);  //www.baidu.com/110.242.68.4// 获取本地地址InetAddress inetAddress3 = InetAddress.getByName("127.0.01");System.out.println(inetAddress3);   // /127.0.0.1InetAddress inetAddress4 = InetAddress.getByName("localhost");System.out.println(inetAddress4);   // localhost/127.0.0.1InetAddress inetAddress5 = InetAddress.getLocalHost();System.out.println(inetAddress5);   // DESKTOP-OKFCPBN/10.61.5.154// getHostNameSystem.out.println(inetAddress2.getHostName()); // www.baidu.comSystem.out.println(inetAddress2.getAddress());  // [B@b1bc7edSystem.out.println(inetAddress2.getCanonicalHostName());    // 110.242.68.4}catch (UnknownHostException e){e.printStackTrace();}}

1.4 端口号

标识正在计算机上运行的进程 0-65535

  • 公认端口: 0-1023, 预先定义的服务通信占用

  • http: 80

  • https: 443

  • ftp: 21

  • telnet: 23

  • 注册端口:1024-49151, 分配给用户进程、程序

  • Tomcat:8080

  • mysql: 3306

  • oracle: 1521

  • 动态私有端口:

  • 49152-65535

端口+IP,得到一个网络套接字,Socket。所以网络编程也叫Socket编程。

    public static void main(String[] args) {InetSocketAddress inetSocketAddress1 = new InetSocketAddress("127.0.0.1", 9090);System.out.println(inetSocketAddress1.getHostName());   // 127.0.0.1System.out.println(inetSocketAddress1.getAddress());    // 地址:127.0.0.1/127.0.0.1System.out.println(inetSocketAddress1.getPort());       // 端口:9090}

1.5 网络通信协议

TCP和UDP网络编程实例。tomcat等

相关文章:

JavaSE: 网络编程

1.1 概述java程序员面对统一的网络编程环境B/S 架构 和 C/S架构1.2 网络通信的两个要素通信双方的地址:ip 端口号网络通信协议:TCP/IP协议(事实上的国际规则)、OSI模型(理想化)1.3 Inet Address本地回环地…...

计算机图形学09:二维观察之点的裁剪

作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、二维观察基本…...

2023Java 并发编程面试题

Java 并发编程 1、在 java 中守护线程和本地线程区别? java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(boolon…...

CAD如何绘制A0/A1/A2/A3/A4图框?

在CAD制图时,设计师一般会使用企业的定制图框模板或者个人的特色图框模板,让设计方案更加标准化、规范化。对于新人设计师而言,完成CAD制图已经非常头疼了,图框的绘制更是手忙脚乱。那么是否有更加高效的方式来完成A0、A1、A2、A3…...

R 安装 “umap-learn“ python 包

首先需要在R中下载并读取reticulate包,该包提供了一系列R-Python的交互式命令由于之前在电脑中通过三个方式安装了Python:直接安装 Python 3.10安装Anaconda,携带3.9安装 Miniconda,又是另外一个版本的Python版本各不相同&#xf…...

测试同学如何快速开发测试平台?

转眼已经好几个月没有发表什么文章了,因为疫情原因,大家工作都不怎么顺利,没有什么心情。再者,最近一直在搞移动端精准测试的项目,有太多技术难点需要攻克。从各个网站上都找不到解决方案,只能不断地尝试&a…...

【程序员接口百宝箱】免费常用API接口

一、短信发送 短信的应用可以说是非常的广泛了,短信API也是当下非常热门的API~ 短信验证码:可用于登录、注册、找回密码、支付认证等等应用场景。支持三大运营商,3秒可达,99.99%到达率,支持大容量高并发。…...

使数组和能被P整除[同余定理+同余定理变形]

同余定理同余定理变形前言一、使数组和能被P整除二、同余定理变形总结参考资料前言 同余定理非常经典,采用前缀和 map,当两个余数前缀和为一个值时,则中间一段子数组刚好对P整除。但是能否找到前面是否有一段子数组和可以对P整除呐&#xf…...

25k的Java开发常问的Synchronized问题有哪些?

前言:面试高频的Synchronized问题大多集中在应用场景、底层实现原理、锁的升级过程。 文章目录 Synchronized定义应用场景对象加锁实现原理JDK6以前JDK6版本及以后对象从无锁到偏向锁转化的过程(大概讲五分钟)轻量级锁升级的过程(大概讲五分钟)自旋锁策略(大概讲五分钟)…...

ES增量同步方案

1 基于业务代码嵌入式的增量同步方式在Java业务代码要修改业务数据的地方,增加调用写入ES数据的方法优点:1、实现方式简单,可控粒度高;2、不依赖第三方数据同步框架;3、数据库不用做特殊配置和部署;缺点&am…...

计算器--课后程序(Python程序开发案例教程-黑马程序员编著-第6章-课后作业)

实例1:计算器 计算器极大地提高了人们进行数字计算的效率与准确性,无论是超市的收银台,还是集市的小摊位,都能够看到计算器的身影。计算器最基本的功能是四则运算。本实例要求编写程序,实现计算器的四则运算功能。 实…...

YOLOv5中添加SE模块详解——原理+代码

目录一、SENet1. 设计原理2. SE Block2.1 Squeeze:Global Information Embedding2.2 Excitation:Adaptive Recalibration3. SE-Inception and SE-ResNet二、YOLOv5中添加SENet1.修改common.py2.修改yolo.py3.修改yolov5s.yaml参考文章一、SENet 论文地址:Squeeze-a…...

arcgispro3.1(账号登陆)

ArcGIS Pro 3.1 更新中文概览专注于 制图、GIS、Python前言:本次更新给了我两个惊喜,一个是本来 ArcMap 就有的功能,另一个明显是学习的 QGIS,嘿嘿,大家往下看吧。整理翻译了一下官方的 ArcGIS Pro 3.1 新特性更新概览…...

VB6换个思路解决微信下载文件只读的问题(含源码)

日期:2023年3月10日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xf…...

Allegro如何知道组合操作命令的拼写

Allegro如何知道组合操作命令的拼写 前面介绍了如何知道单个操作命令的拼写,但如果是复合命令,就无法直观的通过命令来了解,如下图 Snap Pick to -Segment这个命令拼写是什么 如何知道,具体操作如下 点击File点击Script 出现Scripting窗口...

CDO高效处理气象数据

基础命令,只需要在终端输入命令按enter运行即可 ####### 查看文件信息 cdo infos xxx.nc #显示nc文件中的变量名 cdo showname sst.nc #读文件夹下的数据 for i in $(ls);do echo processing $i ;done #线性插值 cdo remapbil,经度纬度 input.nc output.nc ;done ##…...

1. Qt Designer Studio界面介绍

1. 说明: Qt当中的Qt Quick框架使用QML语言来快速搭建优美的界面,但是对于单纯做界面的设计人员并不是很友好,还要让界面设计人员去消耗时间成本学习QML语法。Qt Designer Studio软件就是为了解决这个问题而设计的,工作人员不需要…...

elementUI+vue_vue-admin-template框架

目录安装版本管理文件mock文件夹---模拟数据permission.js --- 登录权限控制文件安装 克隆项目git clone https://gitee.com/panjiachen/vue-admin-template.git进入项目目录cd vue-element-admin安装依赖npm install启动服务npm run dev版本管理 由于我们之前的项目是直接从…...

SpringBoot项目使用Schedule注释创建定时任务

文章目录知识讲解相关注释(主要两个,EnableScheduling和Scheduled)scheduled的cron语法代码项目目录结构启动类(Application)定时任务类(Task)配置类(application.properties)pom依赖展望(Quart…...

学习 Python 之 Pygame 开发魂斗罗(十一)

学习 Python 之 Pygame 开发魂斗罗(十一)继续编写魂斗罗1. 改写主类函数中的代码顺序2. 修改玩家初始化3. 显示玩家生命值4. 设置玩家碰到敌人死亡5. 设置敌人子弹击中玩家6. 修改updatePlayerPosition()函数逻辑继续编写魂斗罗 在上次的博客学习 Pytho…...

翁凯C语言MOOC编程题保姆级解析:从Hello World到GPS数据处理,新手避坑指南

翁凯C语言MOOC编程题深度解析:从入门到精通的实战指南 当你第一次打开翁凯老师的《程序设计入门——C语言》课程时,可能会被那些看似简单的编程题难住。Hello World之后,真正的挑战才刚刚开始。本指南将带你深入理解每道编程题背后的设计意图…...

如何在英雄联盟中节省70%的准备时间?这个本地工具告诉你答案

如何在英雄联盟中节省70%的准备时间?这个本地工具告诉你答案 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 想象一下这个场景&…...

Battle City碰撞检测算法:精准命中与躲避的核心技术解析

Battle City碰撞检测算法:精准命中与躲避的核心技术解析 【免费下载链接】battle-city 🎮 Battle city remake built with react. 项目地址: https://gitcode.com/gh_mirrors/ba/battle-city 在经典的Battle City坦克大战游戏中,碰撞检…...

Baichuan-7B开源大模型:从环境搭建、推理调优到LoRA微调实战

1. 项目概述:一个值得深入研究的开源大语言模型最近在开源社区里,Baichuan-7B这个名字的讨论热度一直不低。作为一个长期关注大模型技术动向的从业者,我自然也对它进行了一番深入的“把玩”和研究。简单来说,Baichuan-7B是由百川智…...

3分钟掌握AMD Ryzen调试神器:SMUDebugTool终极使用指南

3分钟掌握AMD Ryzen调试神器:SMUDebugTool终极使用指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://g…...

2026快消日化CRM选型指南,这几点一定注意

针对洗护日化行业SKU繁杂、全渠道(KA/CS/母婴)管理难的技术痛点,企业在CRM选型时必须关注SFA执行、DMS协同及ERP深度集成的能力。我们在日化赛道,通过勤策SFAAI Agent方案,帮客户把陈列识别准确率提升至98%&#xff0c…...

E-GEO:基于多智能体架构的AI搜索引擎优化工具实战指南

1. 项目概述:E-GEO,一个为AI搜索引擎而生的零门槛优化工具 如果你和我一样,最近几个月一直在琢磨怎么让自家网站的内容在ChatGPT、Claude、Perplexity这些AI搜索引擎里排得更靠前,那你肯定听说过“生成式引擎优化”这个概念。传统…...

构建增强型ClawHub数据层API:基于NestJS与MongoDB的工程实践

1. 项目概述:ClawHub Layer API 是什么?如果你正在开发一个AI应用,或者想深度分析ClawHub上那超过3.6万个技能(Skill),你可能会发现官方的API有点“不够用”。它提供了基础信息,但当你需要全文搜…...

流水线插件开发从3天缩短到10分钟:嘉为蓝鲸AI技能实战

流水线插件开发从3天缩短到10分钟:嘉为蓝鲸AI技能实战 在企业 DevOps 落地中,流水线插件是工具对接、流程沉淀、平台扩展的核心。但插件开发往往面临门槛高、周期长、质量不稳定等问题。一个简单插件,两三天就这么耗进去了。01 插件开发的真实…...

5G手机发展复盘:从技术挑战到市场现实的工程化演进

1. 从“挤牙膏”到“大跃进”:复盘2020年5G手机的真实开局2019年初,当高通在分析师面前用三星和摩托罗拉的工程样机演示5G时,整个行业都弥漫着一种乐观情绪,仿佛一场席卷全球的换机潮即将在2020年爆发。然而,作为一名在…...