如何定位网络上的一台或多台主机,定位主机上的应用(写给人的地址)
如何进行可靠高效进行数据传输(需要贴什么邮票)
解决问题一:IP和端口号
1.唯一标识Internet上的计算机(通信实体)
2.在Java中使用InetAddress类代表IP
3.分类方式1:IPV4和IPV6
分类方式2:万维网 和 局域网
4.域名:代替IP,方便记忆 例如:www.baidu.com
5.本地回路地址:120.0.0.1 对应:localhost
6.如何实例化:两种 getByName(String host) getLocalHost()
两个常用方法:getHostName() 获取域名
getHostAddress() 获取地址IP
import java.net.InetAddress;
import java.net.UnknownHostException;
?
public class Main {
public static void main(String[] args) {
try {
InetAddress byName = InetAddress.getByName("www.baidu.com");
System.out.println(byName.toString());
?
InetAddress localHost = InetAddress.getLocalHost();
System.out.println(localHost);
?
System.out.println(byName.getHostName());
System.out.println(byName.getHostAddress());
?
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
1.标识正在计算机上运行的进程(程序)
2.不同进程要有不同的端口号
3.范围: 16位的整数 0-65535
端口号和IP地址的组合得出一个网络套接字:Socket
TCP协议
三次握手(建立,确保两个人都在 客户端向服务器发消息问在不在,服务器回消息在,客户端回复)
四次挥手(释放,两个人都先对方发了消息说要断开,各自再回一条信息,客户端先,服务器发的时候,客户端回消息只是印证服务器也没有关闭)
可靠,
需要释放连接,效率低
UDP协议
将数据,源,目的封装在数据包
不可靠
速度快,无需释放资源,开销小
//客户端