Java网络编程
概述
计算机网络:
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
网络编程的目的
传播信息,数据交互
网络信息的要素
人工智能
网络协议
小结:
- 网络编程中有两个主要的问题
- 如何准确的定位到网络上的一台或者多台主机
- 找到主机后如何进行通信
- 网络编程中的要素
- ip和端口号
- 网络通信协议
- 万物皆对象
ip
ip:InetAddress
- 唯一定位一台网络计算机
- 127.0.0.1:本机localhost
- IP地址的分类
- ipv4/ipv6
- IPV4 127.0.0.1 四个字节组成 0-255 42个亿
- IPV6 fe80::58f0:c13a:22c4:62bb%11 128位 8个无符号整数
- 公网(互联网)-私网(局域网)
- 192.168.x.x 这类基本上都是私有网络
- ipv4/ipv6
- 域名:记忆ip问题
- ip:www.jd.com
package com.zxy.address;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @Author Zxy
* @Date 2020/11/29 20:07
* @Version 1.0
*/
// 测试IP
public class TestInetAddress {
public static void main(String[] args) throws UnknownHostException {
try {
InetAddress inetAddress1 = InetAddress.getByName("www.baidu.com");
System.out.println(inetAddress1);
InetAddress inetAddress2 = InetAddress.getByName("localhost");
System.out.println(inetAddress2);
InetAddress inetAddress3 = InetAddress.getLocalHost();
System.out.println(inetAddress3);
// 常用方法
System.out.println(inetAddress2.getCanonicalHostName()); // 规范的名字
System.out.println(inetAddress2.getHostAddress()); // ip
System.out.println(inetAddress2.getHostName()); // 域名,或者自己电脑的名字
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
端口
端口表示计算机上的一个程序的进程
- 不同的进程有不同的端口号!用来区分软件
- 被规定0-65535
- TCP,UDP:65535*2 tcp:80,udp:80 单个协议下,端口号不能冲突
- 端口分类
- 共有端口0-1023
- http默认端口80
- https默认端口443
- ftp默认端口21
- telent默认端口23
- 程序注册端口:1024-49151
通信协议
协议:约定,就好比我们现在说的是普通话。
网络通信协议:速率,传输码率,代码结构,传输控制
TCP
客户端
服务器
等待完善