网站运营工作流程,自己制作网站视频教程,广西建设厅网站首页,计算机动漫制作专业IP地址
域名解析#xff1a;
本机访问域名时#xff0c;会从本地的DNS上解析数据#xff08;每个电脑都有#xff09;#xff0c;如果有#xff0c;获取其对应的IP#xff0c;通过IP访问服务器。如果本地没有#xff0c;会去网络提供商的DNS找域名对应的IP#xff0…IP地址
域名解析
本机访问域名时会从本地的DNS上解析数据每个电脑都有如果有获取其对应的IP通过IP访问服务器。如果本地没有会去网络提供商的DNS找域名对应的IP找到了就返回。
公网IP连接互联网的IP
内网IP局域网IP
1、网络通信的基本要素有哪些
2、IP地址是做什么的具体有几种
3、如何查看本机ip如何判断是否与对方互联
4、本地IP是多少
InetAddress
万物皆对象在java中IP对象就是InetAddress
InetAddresspublic static InetAddress getLocalHost()获取本机IP会以一个InetAddress对象返回public static InetAddress getByName(String host)通过主机名获取IP对象public String getHostName()获取主机名public String getHostAddress()获取主机地址public boolean isReachable(int timeout)判断是否能在timeout时间内连通该IP
1、IP地址的代表类是谁
2、如何获取本机IP对象
3、如何判断与某IP对象是否互通
端口
标记正在计算机设备商运行的应用程序被规定为16为二进制范围为0~65535
ip对应主机端口对应的是主机上的应用。如假如微信占用36端口用微信给张三发消息在网络传输过程中通过ip确定张三的电脑端口确定张三电脑上的应用他才能收到。
端口分为
周知端口常用的HTTP是80、FTP是21、注册端口分配给用户进程、动态端口分配不固定
自己开发的程序一般选择注册端口
1、端口的作用是什么
2、一个设备中能否出现两个端口相同的应用程序为什么
通信协议
网络上通信的设配事先规定的连接规则以及传输数据的规则称之为网络协议
开放网络互联标准OSI网络参考模型
OSI、TCP/IP
传输层的两个通信协议
UDP用户数据报协议TCP传输控制协议
UDP协议
特点无连接不可靠通信效率相对高场景语音通话、视频直播不事先建立连接数据按照包发一包数据包含自己的IP、程序端口、目的地IP、程序端口和数据等发送方不关对方是否在线数据发送对视也不管如果接收方受到数据也不返回确认是不可靠的。
TCP协议
特点面向连接可靠通信效率相对低场景网页、文件下载、支付TCP的最终目的要保证在不可靠的信道上实现可靠的传输实现可靠通信的方式三次握手、进行数据确认、四次挥手
三次握手发送连接请求返回响应再次发出确认连接建立。例如开远程会议能听到吗可以听到。 好的那我们开始吧。 第一次和第二次握手是为了确认服务器的连接 第二次和第三次握手是为了确认客户端的连接
四次挥手发出断开连接返回响应稍等返回响应确认断开确认正式断开。如我走了等下带着橘子路上吃行你先去吧
第二次和第三次是服务端的响应
第一次和第四次是客户端的请求
1、通信协议是什么
2、UDP协议、TCP协议的特点是什么各自适用于什么场景
UDP通信
例如抖音上的一个视频道路两旁的两个人一边是厨师炒完菜将菜从盘子中扔过去另一边是服务员用盘子接收飞过来的菜。
厨师就是客户端扔菜的socket服务员是服务端接菜的socket盘子就是就是DatagramPacket()
java提供了一个java.net.DatagramSocket实现UDP通信
public DatagramSocket()创建客户端的socket对象系统随机分配一个端口public DatagramSocket(int port)创建服务端的socket对象并指定端口号public void send(DatagramPacket dp)发送数据包public void receive(DatagramPacket p)使用数据包接收数据接收的数据在数据包的byte[]中DatagramPacket 创建数据包public DatagramPacket(byte[] buf, int length, InteAddress, int port)参数1要发或收的数据参数2要发或收的数据长度参数3服务端的IP地址参数4服务端的端口public DatagramPacket(byte[] buf, int length)参数1要发或收的数据参数2要发或收的数据长度public int getLength()获取数据包实际接收
1、UDP通信的对象是什么
2、如何获取和发送数据包
3、如何创建数据包对象
4、客户端和服务端先启动哪个
服务端
5、服务端运行时会在哪个方法中一直等待接收
receive方法
6、如何从接收的数据包中获取ip和port
数据包.getAddress().getHostAddress();
数据包.getPort();
7、如何关闭socket
socket.close();
TCP通信
1、tcp通信客户端的代表类是谁
new socket(IP端口)
2、如何使用socket管道进行收发数据
socket.getOutputStream();
socket.getInputStream();
3、tcp通信哪个包装流最好用
DataOutputStream、DataInputStream
1、服务端的代表类是谁
new ServerSocket(端口)
客户端和服务端都需要socket插座相当于两个渡口 客户端和服务端分别通过渡口收发数据
客户端需要指定服务端ip和端口 public Socket(String hostint port) 根据指定的ip、端口请求与服务器建立连接连接通过就建立了socket客户端的socket public OutputStream get OutputStream() 获取输出流对象 public InputStream get In putStream() 获取输入对象
服务端 public ServerSocket(int port) 为服务端注册端口 public Socket accept() 获取与客户端连接的socket服务端的socket服务端运行到这里的时候会一直等待直到客户端连接上 public OutputStream get OutputStream() 获取输出流对象 public InputStream get In putStream() 获取输入对象
注意
1. 客户端可能使用了包装流发送数据接收端如果想用包装流必须使用和客户端相同的包装流
2. 记得使用关闭方法关闭流和socket
3. 只要客户端和服务端连接成功后客户端发数据服务端都会收到如果客户端发送的速度很快也不会丢失数据
4. 客户端如果挂了服务端如果没关闭就会产生一个异常• 1、TCP通信服务端用的类是谁
• 2、TCP通信服务端的开发步骤是什么服务端一个线程只能对应一个客户端通信main方法对应的是一个线程所以服务端一个main方法只能与一个客户端通信。如果需要多方通信就需要开启多线程。
仓库
https://gitee.com/gitee_q/network-programming.git