JAVA坎坷之路(9 day)

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-6-28

/**
* 网络编程
* 网络通信协议
* TCP/IP协议(又称协议簇)
* 是一组用于实现网络协议的通信协议
* 其名称来源于该协议簇的两个重要协议(TCP和IP)
* 基于TCP/IP的参考模型将协议分为4个层次
* 链路层、网络层、传输层、应用层
* 链路层
* 也称为网络接口层 该层负责监视数据在主机和网络之间的交互
* 事实上 TCP/IP本身并未定义该层协议
* 而由参与互连的各网络使用自己的物理层和数据链路层协议与TCP/IP的网络层进行连接
* 网络层
* 也称网络互联层 是整个TCP/IP协议的核心
* 它主要用于将传输的数据进行分组 将分组数据发送到目标计算机或网络
* 传输层
* 主要完成网络程序的通信 在进行网络通信时 可以采用TCP
* 也可以采用UDP
* 应用层
* 主要负责应用程序的协议 如HTTP FTP等
* IP地址和端口号
* 想要使网络中的计算机能够通信 必须给计算机指定一个标识号(IP地址)
* IP地址泛用的版本是IPv4 它由4个字节大小的二进制表示
* 每一个字节用一个十进制数字表示(0-255) 数字间用 . 分开
* A类地址 1-127
* B类地址 128-191
* C类地址 192-223
* 通过IP地址可以访问计算机 如果想访问计算机中的某个应用程序 需要指定端口
* 端口号是用两个字节(16位的二进制)表示
* 它的取值范围0-65535
* 其中0-1023的端口号由操作系统的网络服务占用
* 用户的普通应用程序需要使用1024以上的端口
* 避免操作系统服务端口被其他服务占用
*/

沙发
心太凉i 2022-6-28
你倒是来个代码教程
这不是在写嘛[滑稽][滑稽][滑稽]
再说了代码也要在理论的基础之上啊
不要着急[滑稽][滑稽][滑稽]
// Java提供了一个与IP地址相关的InetAddress类 封装IP地址
// host表示指定的主机 此方法表示在给定的主机名的情况下确定主机的IP地址
InetAddress localhost = InetAddress.getByName("localhost");
// 创建一个表示本地主机的InetAddress对象
InetAddress localHost = InetAddress.getLocalHost();
// 得到IP地址的主机名 如果是本机则是计算机名 不是本机则是主机名 如果没有域名则是IP地址
String hostName = localHost.getHostName();
System.out.println(hostName);
// 判断指定的时间内地址是否可以到达
boolean reachable = localHost.isReachable(3000);
System.out.println(reachable);
// 得到字符串格式的原始IP
String hostAddress = localHost.getHostAddress();
System.out.println(hostAddress);
System.out.println(localhost);
System.out.println(localHost);
4楼
心太凉i 2022-6-28
我想听socket的
5楼
呵呵二爷爷 2022-6-28
有了理论基础学啥都一样
程序员不应该只会写代码
底层的理论知识也要扎实[滑稽][滑稽][滑稽][滑稽]
6楼
心太凉i 2022-6-28
就是理论基础不行
7楼
呵呵二爷爷 2022-6-28
那就要好好学,不能心急了[滑稽][滑稽][滑稽]
8楼
呵呵二爷爷 2022-6-28
/**
* UDP与TCP
* UDP用户数据报协议
* TCP传输控制协议
* UDP是无连接通信协议 即在数据传输时 数据的发送端和接收端不建立逻辑连接
* 发送端不会确认客户端是否存在 就会发送数据 也不会向发送端反馈是否收到数据
* 由于使用UDP消耗资源小 通信效率高 通常用于音频 视频 和普通数据传输
* 由于UDP的面向无连接性 不能保证数据的完整性 因此传输重要数据时不建议使用UDP
* TCP是面向连接的通信协议
* 即在传输数据前先在发送端和接收端建立逻辑连接 再传输数据
* 再TCP连接时必须要明确客户端与服务端
* 由客户端向服务器发送连接请求 每次连接的创建都要经过 三次握手
* 第一次握手
* 客户端向服务端发出连接请求 等待服务器曲儿
* 第二此握手
* 服务器向客户端回送一个响应 通知客户端收到了连接请求
* 第三次握手
* 客户端再次向服务器发送确认信息 确认连接
* 由于TCP的面向连接性 它可以保证传输数据的安全性 是一个被广泛应用的协议
*/
9楼
心太凉i 2022-6-28
都已经工作了,没时间学了,走的是WEB的,最近在学Cloud
/**
* UDP通信
* 发送和接收需要使用载体来打包
* java提供了一个DatagramPacket类 用于封装UDP通信中发送或者接收的数据
* 当然有了载体自然要有放置载体的地方
* java提供了一个DatagramSocket类 发送和接收DatagramPacket的数据包
*/

byte[] bytes = new byte[1024];
int len=10;
// DatagramPacket的构造方法 指定了封装数据的字节数组和数据的大小
// DatagramPacket datagramPacket = new DatagramPacket(bytes,len);
// DatagramPacket的构造方法 指定了封装数据的字节数组和数据的大小 而且指定了数据包的目标IP地址和端口
// DatagramPacket datagramPacket = new DatagramPacket(bytes,len,InetAddress.getLocalHost(),8080);
// DatagramPacket的构造方法 指定了封装数据的字节数组 数据从多少开始发送数据 而且指定了数据包的目标IP地址和端口
// DatagramPacket datagramPacket = new DatagramPacket(bytes,100,200,InetAddress.getLocalHost(),8080);
// DatagramPacket的构造方法 指定了封装数据的字节数组 数据从多少开始发送数据
DatagramPacket datagramPacket = new DatagramPacket(bytes,100,200);
//常用方法
// 该方法用于返回发送端或者接收端的IP地址
// 如果时发送端的DatagramPacket对象就返回接收端的IP地址
// 反之就是发送端的IP地址
InetAddress address = datagramPacket.getAddress();
System.out.println(address);
// 该方法用于返回发送端或者接收端的端口号
// 如果时发送端的DatagramPacket对象就返回接收端的端口号
// 反之就是发送端的端口号
int port = datagramPacket.getPort();
System.out.println(port);
// 该方法用于返回接收或者将要发送的数据
// 如果时发送端的DatagramPacket对象就返回将要发送的数据
// 反之就是接收到的数据
byte[] data = datagramPacket.getData();
System.out.println(data);
// 该方法用于返回接收或者将要发送的数据的长度
// 如果时发送端的DatagramPacket对象就返回将要发送的数据的长度
// 反之就是接收到的数据的长度
int length = datagramPacket.getLength();
System.out.println(length);

评论

登录后才可发表内容
  • 主题

    23

  • 帖子

    325

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0500s Mem:2146Kb