【网络编程之初出茅庐】

news/2024/5/17 17:28:12 标签: 网络编程, tcp, udp, java

前言:本章主要先讲解一些基本的网络知识,先把基本的知识用起来,后续会更深入的讲解底层原理。

网络编程的概念

网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信(或称为网络数据传输)。  
分布在不同地理区域的计算机专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。
设备之间在网络中进行数据的传输,发送/接收数据。

通信两个重要的要素 

IP + PORT(端口)

 

设备之间进行传输的时候,必须遵照一定的规则 ---》通信协议: 

TCP协议:可靠的 

UDP协议:不可靠的 

注意:我们这里只是简单的介绍了TCP和UDP协议,其实还有很多相关的知识,会在后面计算机网络原理更加详细介绍!!! 

接下来我们介绍一些封装类,类似 File   ---》   封装盘符一个文件 

【1】InetAddress   ---》 封装了IP 

java">import java.net.InetAddress;
import java.net.UnknownHostException;
/**
 * @auther: themyth
 */
public class Test01 {
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) throws UnknownHostException {
        //封装IP:
        //InetAddress ia = new InetAddress();不能直接创建对象,因为InetAddress()被default修饰了。
        InetAddress ia = InetAddress.getByName("192.168.43.6");
        System.out.println(ia);
        InetAddress ia2 = InetAddress.getByName("localhost");//localhost指代的是本机的IP地址
        System.out.println(ia2);
        InetAddress ia3 = InetAddress.getByName("127.0.0.1");//127.0.0.1指代的也是本机的IP地址
        System.out.println(ia3);
        InetAddress ia4 = InetAddress.getByName("LAPTOP-HKEONEUJ");//封装计算机名
        System.out.println(ia4);
        InetAddress ia5 = InetAddress.getByName("www.baidu.com");//封装域名
        System.out.println(ia5);
        System.out.println(ia5.getHostName());//获取域名
        System.out.println(ia5.getHostAddress());//获取IP地址
    }
}

 

【2】InetSocketAddress  ---》封装了IP,端口号 

java">import java.net.InetAddress;
import java.net.InetSocketAddress;
/**
 * @auther: themyth
 */
public class Test02 {
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        InetSocketAddress isa = new InetSocketAddress("192.168.43.6",8080);//8080为Tomcat的端口号
        System.out.println(isa);
        System.out.println(isa.getHostName());//获取域名(计算机名)
        System.out.println(isa.getPort());//获取端口号
        InetAddress ia = isa.getAddress();
        System.out.println(ia.getHostName());//获取域名(计算机名)
        System.out.println(ia.getHostAddress());//获取IP地址
    }
}

 


http://www.niftyadmin.cn/n/5260251.html

相关文章

无重复字符的最长子串(LeetCode 3)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路方法一:暴力法方法二:滑动窗口 参考文献 1.问题描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 s 由英文字母、数字、符号和空格组成。 示例 1: 输…

《Easy3d+Qt+VTK》学习

《Easy3dQtVTK》学习-1、编译与配置 一、编译二、配置注 一、编译 1、 资源下载:easy3d giuhub 2、解压缩 3、用qt打开CMakeLists.txt即可 4、点击项目,选择debug或者release,图中3处可自行选择,因为我的qt版本是6&#xff0c…

结合eNSP实验讲VLAN,让理论生动

目录 一、VLAN的简介 1、定义 2、产生的原因--解决传统以太网的问题 3、VLAN的作用 4、VLAN数据帧格式--插入VLAN标签 5、VLAN的种类 5.1静态VLAN--常用 5.1.1静态vlan的范围 5.2动态VLAN 6、VLAN的三种端口类型 6.1Access接口 6.2Trunk接口 6.3Hybrid接口 二、配置…

c语言注册登录+实验室物帐管理系统

实验室物帐管理系统:用户手册 1引言 本用户手册旨在为实验室物帐管理系统的使用提供指导和帮助。该系统旨在实现以下功能:仪器设备条目的输入、仪器设备的借还以及库存情况查询及修改。通过本手册,您将了解到如何正确使用该系统&#xff0c…

Tomcat部署Activiti官方 流程设计器【数据库更换为Mysql !!!】

一、官网下载activiti6 解压后结构如下: database: 存放数据库对象相关脚本,包含不同的数据库脚本 libs: 包含activiti开发过程中需要用到的jar包和源码,不建议通过jar包直接引用,建议通过maven进行管理 wars&am…

C++共享和保护——(2)生存期

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 生命如同寓言,其价值不在于…

Vue引入字节跳动图标库

复制下面的命令安装IconPark库: npm install icon-park/vue-next --save 如果你不在乎打包大小,可以全局注册IconPark并使用。在你的main.js中配置如下代码: import { createApp } from "vue";import App from "./App.vue&qu…

maui sqlite开发一个商城加购物车的演示(1)

界面演示 using ShoppingUI;namespace ShoppingUI;public partial class App : Application {public App(){InitializeComponent();MainPage new LoginPage();}static LoginDatabase database;// Create the database connection as a singleton.public static LoginDatabase …