网络编程
1.1概述
tcp 需要确认 一直连接
udp 不需要确认一直连接
1.1.2计算机网络
计算机网络是指将==地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议==的管理和协调下,实现资源共享和信息传递的计算机系统。 [1]
- 地理位置不同 怎么获取具体信息,
- 如何连接
- 通信协议
- 实现网络资源共享
1.1.3网络编程的目的
无线电台…传播交流信息, 核心叫数据交换 也就是通信
1.1.4达成什么效果
- 准确定位网络一台主机
- 找到主机如何让传输数据
javaweb是 网页编程 b/s
网络编程TCp/ip c/s
1.2网络通信的要素
如何实现网络的通信?
通信双方地址:
- ip
- 端口号
- 需要规则 通信协议
TCP/IP
解决 问题 :
1.如何让准确的定位网络的注解
2.找到主机后如何通信
3.ip和端口号
4.网络通信协议 upc tcp 的类
1.3 IP 类
ip地址:inteAddress
- 唯一定位的主机
- 127.0.0.1 本机localhost
- ipv4 /ipv6
- ipv4 127.0.0.1,四个字节 ,0-255,42亿 ;30亿再北美,4亿再亚洲 ,2011年用尽
- ipv6 16位*8无符号整数 =128b
一、冒分十六进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
这种表示法中,每个X的前导0是可以省略的,例如:
2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
- 公网 互联网 私网 局域网
package com.cjg.netCode;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class net01 {
public static void main(String[] args) {
try {
InetAddress localHost = InetAddress.getLocalHost();
InetAddress byName = InetAddress.getByName("www.baidu.com");
String hostName = byName.getHostName();
System.out.println(hostName);//获取域名
System.out.println(byName.getHostAddress()); // 获取ip
System.out.println(localHost);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
1.4端口
端口表示 计算机上的一个程序的进程;
- 一栋楼是一个 ip
-
- 每一户是一个端口
- 每一户中的物件是程序
被规定65535 tcp udp 都有
端口 (不建议占用)
-
公有 端口0-1023
-
http:80 https:443 ftp:21 telent:23
-
程序 tomcat :80 Mysql:3306 oracle:1521
-
动态私有 49152-65535
-
63342 idea
netstat -ano # 查看所以端口 netstat -ano|findstr "5900" #查看制定端口 tasklist|findstr "xxxx" #查看制定进程
-
package com.cjg.netCode; import java.net.InetSocketAddress; public class net02 { public static void main(String[] args) { InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 80); System.out.println(inetSocketAddress.getAddress()); System.out.println(inetSocketAddress.getHostName()); System.out.println(inetSocketAddress.getPort()); System.out.println(inetSocketAddress); } } 记住两个类 InetSocketAddress InetAddress