网络编程
1.1、概述
网络编程的目的:
数据交换,通信
需要什么
-
如何准确定位网络上的一台主机,端口,定位计算机资源
-
如何传输数据
javaweb: 网页编程 B/S
网络编程:TCP/IP C/S
1.2、 网络通信的要素
如何实现网络通信:
通信双方的地址
- ip
- 端口号
- 192.168.++.+++:++++
规则:网络通信的协议
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xl6892ww-1606053325089)(C:\Users\马永强\AppData\Roaming\Typora\typora-user-images\image-20201122191424232.png)]
小结:
1.网络编程中的两个问题:
- 如何定位一台或多台主机
- 找到主机之后如何进行通信
2.网络编程的要素
- IP和端口号 IP
- 网络通信协议 UDP TCP
3.万物皆对象
1.3、IP
ip地址:InetAddress
-
唯一定位一台网络上的计算机
-
127.0.0.1:本机localhost
-
ip地址的分类
- IPV4/IPV6
- ipv4:127.0.0.1,四个字节组成。0~255,42亿个
- ipv6:128位,8个无符号整数!
- 公网(互联网)-私网(局域网)
- ABCD类地址
- 192.168.xx.xx,专门给组织内部使用
- IPV4/IPV6
-
域名 :让IP容易记住
package com.qiang.lesson01; import java.net.InetAddress; import java.net.UnknownHostException; //测试IP public class TestInetAddress { public static void main(String[] args){ try { //查询本机地址 InetAddress inetAddresses1 = InetAddress.getByName("127.0.0.1"); System.out.println(inetAddresses1); InetAddress inetAddresses2 = InetAddress.getByName("localhost"); System.out.println(inetAddresses2); InetAddress inetAddresses3 = InetAddress.getLocalHost(); System.out.println(inetAddresses3); //查询网站IP InetAddress inetAddresses9 = InetAddress.getByName("www.baidu.com"); System.out.println(inetAddresses9); } catch (UnknownHostException e) { e.printStackTrace(); } } }
1.4、端口
计算机上的一个程序的进程:
-
不同的进程有不同的端口号!用来区分软件
-
范围被规定0~65535
-
TCP,UDP:单个协议下,端口号不能冲突
-
端口分类
-
公有端口0~1023
-
HTTP :80
-
HTTPS :443
-
FTP :21
-
Telent:23
-
-
程序注册端口:1014~49151,分配个用户或者程序
- Tomcat : 8080
- MySQL : 3306
- Oracle : 1521
-
动态、私有:49152~65535
- cmd
netstat -ano #查看所有端口 netstat -ano|findstr "1111" #查看指定端口 tasklist|findstr "1372" #查找指定端口独赢程序
-
package com.qiang.lesson01; 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.getAddress()); System.out.println(inetSocketAddress.getHostName());//地址 System.out.println(inetSocketAddress.getPort());//端口 } }
-
1.5、通信协议
协议:约定
网络通信协议:速率,传输码率,代码结构,传输控制…
很复杂,分层解决!
TCP/IP协议:实际上是一组协议
重要
- TCP: 用户传输协议
- UDP: 用户数据报协议
很出名的协议
- TCP:
- IP: 网络互连协议