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

day10_网络

day10_网络

1网络访问模式介绍

2网络常见名词解释

1IP协议

标记计算机地址

IPV4 32位标记计算机地址

255.255.255.255 - 0.0.0.0

127.0.0.1 回送地址 表示本机 localhost 本机域名

192.168.xxx.xxx 局域网专用地址

192.168.1.xxx 192.168.0.xxx

子网掩码

255.255.255.0 255.255.0.0

IPV6 128位标记计算机地址

运行商会做IP共享 隐藏

域名 为了好记

DNS解析

2传输协议

TCP 面相连接 可靠连接 (数据完整性 效率偏低)

面相连接 传输数据前 必须保证双方建立好连接

可靠连接 如果丢包 数据出错 会重发

TCP的连接三次握手

TCP的断开四次挥手

UDP 面相无连接 不可靠连接(效率较高)

面相无连接 直接传数据

不可靠连接 数据出错 丢失 不会重发

端口号

在操作系统中 通过端口号绑定应用程序

操作系统可以识别出 数据时发给哪个应用程序的

同一个端口号 同一时间 只能被一个应用程序占用

2000以下端口号 系统级别的服务

http 80

https 443

2000-5000 知名的应用程序

mysql 3306

5000以上 自定义应用程序

liveServer 5500

vite 5173

tomcat 8080

3应用层协议

应用程序之间发送数据的格式

报文数据(字符 规定字符的格式)

请求报文

响应报文

http协议 浏览器 与 浏览器交互的服务器的数据格式

应用层协议可以自定义

3网络常见API

1InetAddress

获取IP协议相关参数 地址 主机名

package com.javasm;
​
import java.net.InetAddress;
import java.net.UnknownHostException;
​
/*** @className: InetAddressDemo* @author: gfs* @date: 2025/10/14 11:32* @version: 0.1* @since: jdk17* @description:*/
public class InetAddressDemo {
​public static void main(String[] args) {
​try {InetAddress localHost = InetAddress.getLocalHost();
​System.out.println(localHost);
​InetAddress[] allByName = InetAddress.getAllByName(localHost.getHostName());
​for(InetAddress iar :allByName){System.out.println(iar);}
​
​} catch (UnknownHostException e) {throw new RuntimeException(e);}
​
​}
​
​
}
​
2.URL
  • 统一资源定位符 可以访问的URL标准格式地址

  • 协议      地址      端口     资源地址       参数
    http:// 127.0.0.1 : 8080  /search   ?  name=jack

    1可以解析URL地址 把每段抽出来

2可以做http请求 访问

package com.javasm;
​
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
​
/*** @className: URLDemo* @author: gfs* @date: 2025/10/14 11:37* @version: 0.1* @since: jdk17* @description:*/
public class URLDemo {public static void main(String[] args) {
​try {URL url = new URL("http://127.0.0.1:8080/search?name=jack&pwd=abc123");System.out.println(url.getProtocol());//协议System.out.println(url.getHost());    //地址System.out.println(url.getPort());    //端口System.out.println(url.getPath());    //访问路径(资源路径)System.out.println(url.getQuery());   //查询参数
​URL url2 = new URL("http://t.weather.itboy.net/api/weather/city/101020100");
​URLConnection urlConnection = url2.openConnection();
​InputStream inputStream = urlConnection.getInputStream();//out  写//in   读BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));String string = br.readLine();System.out.println(string);
​//根据应用需求 可以对相应体数据做二次封装
​
​} catch (MalformedURLException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}
​
​}
}
​
3Socket

网络套接字 用于客户端与服务端的连接

Socket 用于构建客户端

ServerSocket 用于构建服务端

客户端:

package com.javasm2;
​
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
​
/*** @className: ClientDemo* @author: gfs* @date: 2025/10/14 14:34* @version: 0.1* @since: jdk17* @description:*/
public class ClientDemo {
​
​public static void main(String[] args) {
​/*socket 基本作用* 1 通过socket 让不同的进程 通过网络连接起来 互传数据* 2 socket 基于tcp协议 不涉及应用层协议(没有规定应用程序之间传什么)可以自定义应用层协议** */
​
​try {Socket socket = new Socket("192.168.0.151",7788);//*// 输出流  给别人(另外的进程)写// 输入流  读别人(另外的进程)发来的数据// *///向连接的服务程序 发送数据OutputStream outputStream = socket.getOutputStream();DataOutputStream dataOutputStream = new DataOutputStream(outputStream);//name=jack;age=15;address=凤阳街18号dataOutputStream.writeUTF("name=jack;age=15;address=凤阳街18号");
​
​
​} catch (IOException e) {throw new RuntimeException(e);}
​
​}
}
​

服务端:

package com.javasm2;
​
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
​
/*** @className: ServerDemo* @author: gfs* @date: 2025/10/14 14:37* @version: 0.1* @since: jdk17* @description:*/
public class ServerDemo {
​public static void main(String[] args) {
​try {ServerSocket serverSocket = new ServerSocket(7788);System.out.println("开始监听7788端口 等待数据..........");Socket socket = serverSocket.accept();//*// 输出流  给别人(另外的进程)写// 输入流  读别人(另外的进程)发来的数据// */InputStream inputStream = socket.getInputStream();DataInputStream dis = new DataInputStream(inputStream);String stuStr = dis.readUTF();System.out.println("客户端发来的数据:"+stuStr);//解析数据//name=jack;age=15;address=凤阳街18号Student student = new Student();student.setName(stuStr.split(";")[0].split("=")[1]);student.setAge(Integer.valueOf(stuStr.split(";")[1].split("=")[1]) );student.setAddress(stuStr.split(";")[2].split("=")[1]);
​System.out.println(student);} catch (IOException e) {throw new RuntimeException(e);}
​
​}
}
​

注意:

/*socket 基本作用* 1 通过socket 让不同的进程 通过网络连接起来 互传数据* 2 socket 基于tcp协议 不涉及应用层协议(没有规定应用程序之间传什么)可以自定义应用层协议(约定好传输的字符格式 通过网络传student对象)*          * */

4web服务器原理

http://www.dtcms.com/a/483977.html

相关文章:

  • 代做机械毕业设计网站成全视频在线观看免费高清动漫
  • 电子商务网站建设的问题全国文明城市创建工作
  • 卫朋:IPD流程落地——实施IPD的基础使能器
  • 网站开发毕设设计论文金华网络公司网站建设
  • 企业解决方案参考网站做影视网站风险大吗
  • 甘肃省铁路投资建设集团有限公司网站wordpress修改订阅者
  • 怎样优化慢速的MySQL查询语句?
  • Java算法题
  • 文章写作网站网站建设推广公司排名
  • 上海企业模板建站苏州新闻今天最新消息新闻事件
  • 网站质量度网页设计图片素材网
  • 10月14日星期二今日早报简报微语报早读
  • 网站流量功能更怎么做自己做的影视会员网站违法么
  • 网站设计弹窗西安免费做网站公司
  • 网站建设深网站开发图片侵权
  • 【每日一K】altera 封装数据
  • 建设银行网站字体网站开发必学书籍
  • 济南seo优化公司助力网站腾飞推广平台排行榜有哪些
  • OWL 的 t-* 与 Vue3 的 v-* 全面对比
  • C#项目连接S7-PLCSIM Advanced读写操作
  • Linux中的wheel介绍以及用法
  • 统计期刊介绍——Journal of Statistical Planning and Inference(JSPI)
  • 网站后台 刷新做网站完整过程
  • 泰州企业模板建站北京广告网站建设
  • MySQL8数据库高级特性-第二章
  • 【Python基础】Python路径操作全解析:os.path、glob与pathlib从入门到精通
  • 男人女人做羞羞事网站如皋网站建设招标
  • 在线相册jsp网站开发与设计徐州泰安抖音代运营
  • 网站seo优化步骤给我一个用c 做的网站
  • 重庆建设造价信息网站深圳带停机坪的别墅