网络编程
1.1 概述
地球村:你在中国,有一个美国的朋友
计算机网络:
计算机网络是指将地理位置不同的具有独立功能的多台过算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
网络编程的目的:
无线电台…传播交流信息,数据交换.通信
想要达到这个效果需要什么:
1.如何准确的定位网络上的一台主机192.168.16.124: 端口,定位到这个计算机上的某个资源
2.找到了这个主机,如何传输数据呢?
javaweb:网页编程 B/S
网络编程: TCP/IP C/S
12 网络通信的要素
如何实现网络的通信?
通信双方的地址:
-
ip
-
端口号
-
192.168.16.125:5900
规则:网络通信的协议
小结:
- 网络编程中有两个主要的问题
- 如何准确的定位到网络上的-台或者多台主机
- 找到主机之后如何进行通信
- 网络编程中的要素
- IP和端口号IP
- 网络通信协议udp, tcp
- 万物皆对象
1.3 IP
IP地址:InetAddress
-
唯一定位一台网络上计算机
-
127.0.0.1 :本机localhost
-
ip地址的分类:
ipv4/ ipv6
-
IPV4: 127.0.0.1 , 4个字节组成。0-255, 42亿~ ; 30亿都在北美, 亚洲4亿。201 1年就用尽;
-
IPV6 :128位。 8个无符号整数!
2001: 0bb2: aaaa: 0015 :0000:0000:1aaa: 1312
-
公网(互联网) – 私网(局域网)
1. ABCD类地址
2. 192.168.xx.xx,专门给组织内部使用的
- 域名:记忆IP问题!
- IP:www.baidu.com
package com.gong.base;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class TestInetAddress {
public static void main(String[] args) {
try {
//查询本机ip地址
InetAddress inetAddress=InetAddress.getByName("127.0.0.1");
System.out.println(inetAddress);
InetAddress inetAddress2=InetAddress.getByName("localhost");
InetAddress inetAddress3=InetAddress.getLocalHost();
System.out.println(inetAddress2);
System.out.println(inetAddress3);
//查询网站ip地址
InetAddress inetAddress1=InetAddress.getByName("www.baidu.com");
System.out.println(inetAddress1);
//常用方法
System.out.println(inetAddress1.getCanonicalHostName());//获得规范的名字,不常用
System.out.println(inetAddress1.getHostAddress());//ip
System.out.println(inetAddress1.getHostName());//域名
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
1.4 端口
端口表示计算机上的进程;
-
不同的进程有不同的端口号!用来区分软件!
-
被规定0~65535
-
TCP/UDP:65535*2,当个协议下,端口号不能冲突
-
端口分类:
-
公有端口:0~123
- HTTP:80
- HTTPS:443
- FTP:21
- Telent:23
-
程序注册端口:1024~49151,分配给程序或用户
- Tomcat:8080
- Mysql:3306
- Oracle:1521
-
动态,私有:49152-65535
netstat -ano 查看所用端口//在cmd下
package com.gong.base; import java.net.InetSocketAddress; public class TestInetSocketAddress { public static void main(String[] args) { InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1",8080); InetSocketAddress socketAddress2 = new InetSocketAddress("localhost",8080); System.out.println(socketAddress); System.out.println(socketAddress2); System.out.println(socketAddress.getAddress()); System.out.println(socketAddress.getHostName());//地址 System.out.println(socketAddress.getPort());//端口 } }
-
1.5 通信协议
协议:约定,就好比我们现在说的是普通话。
**网络通信协议: **速率,传输码率,代码结构,传输控制…
问题: 非常的复杂?
大事化小: 分层!
TCP/IP协议:实际上是一组协议
重要:
● TCP:用户传输协议
● UDP:用户数据报协议
出名的协议:
● TCP:
● IP:网络互连协议
TCP UDP对比
TCP :打电话
●连接,稳定
●三次握手 四次分手
●客户端.服务端
●传输完成,释放连接,效率低
UDP:发短信
●不连接,不稳定
●客户端.服务端:没有明确的界限
●不管有没有准备好.都可以发给你…
●DDOS:洪水攻击! (饱和攻击)
网络编程(二)
这是在b站上看的java基础,比较好的视频,推荐大家去学学狂神说java的视频网络基础