4.14日网络编程学习

2024-04-15 07:44
文章标签 学习 编程 网络 4.14

本文主要是介绍4.14日网络编程学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.网络编程三要素

1.IP地址:

IP地址:指互联网协议地址(Internet Protocol Address),俗称IP。要想使网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接受数据的计算机或者发送数据的计算机。

在TCP/IP协议中,这个标识号就是IP地址,它可以唯一标识一台计算机,目前,IP地址广泛使用的版本是IPv4,它是由4个字节大小的二进制数来表示,如:00001010000000000000000000000001。由于二进制形式表示的IP地址非常不便记忆和处理,因此通常会将IP地址写成十进制的形式,每个字节用一个十进制数字(0-255)表示,数字间用符号“.”分开,如 “192.168.1.100”。

随着计算机网络规模的不断扩大,对IP地址的需求也越来越多,IPV4这种用4个字节表示的IP地址面临枯竭,因此IPv6 便应运而生了,IPv6使用16个字节表示IP地址,它所拥有的地址容量约是IPv4的8×1028倍,达到2128个(算上全零的),这样就解决了网络地址资源数量不够的问题。

说白了,IP其实就是每个设备在网络中的编号

2.端口:

网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢?

如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。

3.网络通信协议

提到传输层的两个重要的高级协议,分别是UDP和TCP,其中UDP是User Datagram Protocol的简称,称为用户数据报协议,TCP是Transmission Control Protocol的简称,称为传输控制协议。

2.首先来进行IP的学习

想要对IP进行操作,就避不开要用InetAdress这个类

import java.net.InetAddress;
import java.net.UnknownHostException;public class inetaddress {public static void main(String[] args) throws UnknownHostException {//1.获取inetAddress对象//IP的对象,也可以说是一台电脑的对象InetAddress address=InetAddress.getByName("192.168.50.155");//DESKTOP-D4I5DGV   电脑名InetAddress address1=InetAddress.getByName("DESKTOP-D4I5DGV");System.out.println(address1);//获取主机名String s=address.getHostName();System.out.println(s);//返回文本中显示的IP字符串(获取电脑对象的IP)String str=address.getHostAddress();System.out.println(str);}
}

3.UDP

1.UDP的发送信息

步骤:1.创建对象

            2.打包数据

           3.发送数据

           4.清除缓存

public class SendTest {//发送数据public static void main(String[] args) throws IOException {//1.创建对象DatagramSocket ds=new DatagramSocket();//2.打包数据Scanner sc=new Scanner(System.in);while (true) {String str=sc.nextLine();if("886".equals(str)){break;}byte[] bytes=str.getBytes();InetAddress ia=InetAddress.getByName("127.0.0.1");int port=10086;DatagramPacket dp=new DatagramPacket(bytes,bytes.length,ia,port);//3.发送数据ds.send(dp);}//4.清除缓存ds.close();}
}

2.UDP的接受消息

步骤:

1.创建对象

2.接受消息

3.解压消息

4.释放内存

public class ReceiveTest {public static void main(String[] args) throws IOException {//接受数据//1.创建对象DatagramSocket ds=new DatagramSocket(10086);//2.接受数据byte[] bytes=new byte[1024];DatagramPacket dp=new DatagramPacket(bytes, bytes.length);//while (true) {ds.receive(dp);//3.解压数据byte[] data= dp.getData();int len= dp.getLength();InetAddress ia=dp.getAddress();int port=dp.getPort();System.out.println(new String(data,0,len));
//            System.out.println(ia);
//            System.out.println(port);//}//4.释放内存ds.close();}
}

4.UCP

考察的主要是服务器与客户端,因此我们需要做一个服务器与客户端

1.客户端

public class Client {//TCP协议客户端,用来发送数据public static void main(String[] args) throws IOException {//1.创建socket对象//细节:在创建对象的同时,会连接服务器,如果连接不上,则报错Socket socket=new Socket("127.0.0.1",10006);//服务器的IP,以及链接的端口//2.从连接通道中获取输出流OutputStream os=socket.getOutputStream();//写出数据os.write("你好".getBytes());//3.释放资源os.close();socket.close();}
}

2.服务器 

public class Server {//TCP协议服务端,用于接受消息public static void main(String[] args) throws IOException {//1.创建服务器 ServerSocket//链接的端口必须与用户端一致ServerSocket ss=new ServerSocket(10006);//2.监听客户端链接Socket socket=ss.accept();//3.从连接通道中获取输入流,读取数据InputStream is=socket.getInputStream();//用转换流,将字节流变成字符流InputStreamReader isr=new InputStreamReader(is);int b;while(((b=isr.read()))!=-1){System.out.print((char)b);}//4.释放资源socket.close();ss.close();}
}

这篇关于4.14日网络编程学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/905236

相关文章

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.