不知道大家一直高强度学习自己是什么样的感觉,反正我现在逐渐变得麻木了,马上又要实习笔试了,每次笔试都要突击,每次突击都意识到自己有太多不会的,主打一个心累,但是又能怎样呢,自己选的路就是要坚持下去。
网络编程
概述
- 计算机网络: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
- 网络编程的目的:无线电台…传播交流信息,数据交换,通信。
- 想要达到这个效果需要什么:
- 如何让准确的定位网络上的一台主机 192.168.16.124:端口, 定位上这个计算机上的某个资源。
- 找到了这个主机,如何传输数据呢?
- Javaweb:网页编程 、 B/S架构
- 网络编程:TCP/IP 、 C/S
网络通信要素
如何实现网络的通信?
举例:
- 通信双方的地址:
- ip:192.168.16.124
- 端口:5900
- 规则:网络通信的协议:TCP/IP(这是一个协议)
总结:
- 网络编程中有两个主要的问题:
- 如何让准确的定位到网络上的一台或多台主机;
- 找到主机之后如何通信;
- 网络编程中的要素:
- IP和端口号:IP
- 网络通信协议:UDP、TCP
- 万物皆对象
IP
IP 地址:InetAddress
唯一定位一台网络上的计算机
127.0.0.1: 本机localhost
ip地址的父类
- IPV4: 127.0.0.1 ,4个字节组成。,0~255, 42亿~;30亿都在北美,亚洲4亿。2011年就用尽;所以是很缺乏且不公平的。
- IPV6: fe80::f0e0:7383:ad8e:f32f%3 ,128位。8个无符号整数
公网(互联网)–私网(局域网)
ABCD地址
192.168.xx.xx,专门给组织内部使用。
域名:记忆IP问题!
- IP:www.vip.com 唯品会专用IP
上个代码看看:
package NetProgramming;
import java.net.InetAddress;
import java.net.UnknownHostException;
// 测试IP
public class IpTest1 {
public static void main(String[] args) {
try {
// 查询本机地址
InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1");
System.out.println(inetAddress1);
InetAddress inetAddress2 = InetAddress.getByName("localhost");
System.out.println(inetAddress2);
InetAddress inetAddress3 = InetAddress.getLocalHost();
System.out.println(inetAddress3);
// 查询网站ip地址
InetAddress inetAddress4 = InetAddress.getByName("www.baidu.com");
System.out.println(inetAddress4);
//常用方法
// System.out.println(inetAddress4.getAddress());
System.out.println(inetAddress4.getCanonicalHostName()); //规范:ip
System.out.println(inetAddress4.getHostAddress()); // ip
System.out.println(inetAddress4.getHostName()); // 域名,或者自己电脑的名字
} catch (UnknownHostException e) {
throw new RuntimeException(e);
}
}
}
通过InetAddress类的一些方法查询本机的IP以及外部网站,外部的会慢一些~
端口
端口表示计算机上一个程序的进程;
不同的进程有不同的端口号!用来区分软件!
被规定0~65535
TCP,UDP:65535*2个端口 单个协议下,端口号不能冲突
端口分类
- 共有端口 0~1023 内置的进程使用
- HTTP:80
- HTTP:443 如访问https://www.baidu.com:443 访问的还是百度
- FTP:21
- TELENT:23
- 程序注册端口:1014-49151,分配给用户和程序
- Tomcat:8080
- MySql:3306
- Oracle:1521
- 动态、私有端口:49152~65535
- 共有端口 0~1023 内置的进程使用
大概的端口范围就是这些~
上个查端口以及地址的简单代码:
package NetProgramming;
import java.net.InetSocketAddress;
public class TestInetSocketAddress {
public static void main(String[] args) {
InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 8080);
System.out.println(inetSocketAddress);
System.out.println(inetSocketAddress.getPort());
}
}
由于今天太累了,不给大家分享太多,明日分享非常多的干货,敬请期待!!!!!