Java编程--网络编程(基础知识)

网络编程(基础知识)

网络编程三要素

A:IP地址:网络中每台计算机的唯一标识

B:端口

C:协议

举例:我想和小林说话,怎么办?

A:我要找到小林

B:对他说话,要对耳朵说(找到计算机了,要找到应用程序)

C:我说什么呢?"Hello"--没学过英语,听不懂。


一.IP地址:网络中计算机的唯一标识。

1.计算机只能识别二进制的数据,所以我们的IP地址应该是一个二进制的数据。

但是我们配置的IP地址却不是二进制的,为什么呢?

2.IP的组成:网络号段+主机号段

3.IP地址的分类:

(1)A类:1.0.0.1--127.255.255.254

第一号段为网络号段+后三段的主机号段:

一个网络号:256*256*256 = 16777216

(2)B类:128.0.0.1--191.255.255.254

前二号段为网络号段+后三段的主机号段:

一个网络号:256*256 = 65536

(3)C类:192.0.0.1--223.255.255.254

前三号段为网络号段+后三段的主机号段:

一个网络号:256

(4)D类:224.0.0.1--239.255.255.254(保留地址)

(5)E类:240.0.0.1--247.255.255.254(保留地址)

4.两个DOS命令:

ipconfig:查看本机IP地址

ping:后面跟IP地址。测试本机与指定的IP地址间的通信是否有问题。

5.特殊的IP地址:

127.0.0.1:回环地址(表示本机)

x.x.x.255:广播地址

x.x.x.0:网络地址


二.端口号:正在运行的程序的标识。

有效端口:0~65535,其中0~1024系统使用或保留端口。

 

三.协议:通信的规则。

(1)UDP:将数据源和目的地封装成数据包。

(2)TCP:建立连接,形成传输的通道。

【举例】UDP:发短信;TCP:打电话。

【例】获取主机名和IP地址。

java.net
类 InetAddress

java.lang.Object

  java.net.InetAddress

所有已实现的接口: 

Serializable 

此类表示互联网协议 (IP) 地址。

public static InetAddress getByName(String host)在给定主机名的情况下确定主机的 IP 地址。

主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。

public String getHostAddress()返回 IP 地址字符串(以文本表现形式)。

public String getHostName()获取此 IP 地址的主机名。 

import java.net.InetAddress;
import java.net.UnknownHostException;

/*
 * 	如果一个类没用构造方法:
 * 		A:成员全部是静态的(Math,Arrays,Collection)
 * 		B:单例设计模式(Runtime)
 * 		C:类中有静态方法返回该类的对象(InetAddress)
 * 
 * 		public static InetAddress getByName(String host)
            throws UnknownHostException:在给定主机名的情况下确定主机的 IP 地址。 
 * */
public class InetAddressTest {
	public static void main(String[] args) throws UnknownHostException {
		// public static InetAddress getByName(String host)
		InetAddress address = InetAddress.getByName("192.168.80.1");

		// 获取两个东西:主机名,IP地址
		// String getHostName():获取此 IP 地址的主机名。
		String name = address.getHostName();
		// public String getHostAddress():返回 IP地址字符串(以文本表现形式)。
		String ip = address.getHostAddress();
		System.out.println(name + "---" + ip);
	}
}

运行结果:


import java.io.IOException;
import java.net.InetAddress;

public class Test1 {

	public static void main(String[] args) throws IOException {
		InetAddress address = InetAddress.getLocalHost();
		System.out.println(address); // HASSE/192.168.52.1
		String hostName = address.getHostName();
		String hostAddress = address.getHostAddress();
		System.out.println(hostName); // HASSE
		System.out.println(hostAddress); // 192.168.52.1
	}
}

Socket

1)Socket套接字:网络上具有唯一标识的IP地址和端口号组合在一起才能构成为唯一能识别的标识符套接字。

2)Socket原理机制:通信的两端都有Socket;网络通信其实就是Socket间通信;数据在两个Socket间通过IO传输。

猜你喜欢

转载自blog.csdn.net/m0_38056893/article/details/80384200