网络编程基础/TCPIP/Socket/InetAddress/
2016-11-25 本文已影响0人
Super_邓帅
![](https://img.haomeiwen.com/i2955260/2ef8fd9a297ba903.png)
![](https://img.haomeiwen.com/i2955260/e7066a179c8b6d72.png)
1、每台主机拥有唯一的标识(IP地址)
2、共同的通信语言(协议)
3、区别不同应用程序的端口
![](https://img.haomeiwen.com/i2955260/49dbda15ee1df68d.png)
![](https://img.haomeiwen.com/i2955260/c56d1a0dd5fe0220.png)
网线、网卡等属于物理层;TCP/IP协议在传输层;应用层也是用户可以直接接触得到的,如以下协议:
![](https://img.haomeiwen.com/i2955260/0a136e48a1f849d6.png)
![](https://img.haomeiwen.com/i2955260/38b7da0280d4c116.png)
IP地址也有格式,IPv4版本指的是第四个版本
端口:
一台电脑可以运行多个不同的程序,用端口号区分这些应用程序。一台电脑上的QQ消息能不能被另一台电脑的MSN接收呢?当然不能,原因就是两个程序的端口号不同
![](https://img.haomeiwen.com/i2955260/bcbf41e857779ab2.png)
![](https://img.haomeiwen.com/i2955260/352243c33d3aa3f6.png)
![](https://img.haomeiwen.com/i2955260/16bc8218294401a9.png)
![](https://img.haomeiwen.com/i2955260/f1576a65af249366.png)
public static void main(String[] args) throws UnknownHostException {
//获取本机的InetAddress实例
InetAddress address1=InetAddress.getLocalHost(); //会产生异常,try/catch解决或者抛出异常
System.out.println("本机InetAddress获得计算机名称:"+address1.getHostName());
System.out.println("本机InetAddress获得计算机IP地址:"+address1.getHostAddress());
//字符数组获得IP地址
byte[] bytes1=address1.getAddress(); //可能会溢出
System.out.println("字符数组形式获得IP:"+Arrays.toString(bytes1));
//直接输出InetAddress对象
System.out.println(address1);
System.out.println("===================");
//根据其他电脑的名称获取InetAddress对象
InetAddress address2=InetAddress.getByName("Lenovo-PC");
System.out.println("获得名称:"+address2.getHostName());
System.out.println("获得IP地址:"+address2.getHostAddress());
//根据其他电脑的IP获取InetAddress对象
InetAddress address3=InetAddress.getByName("192.168.1.108");
System.out.println("名称:"+address3.getHostName());
System.out.println("IP地址:"+address3.getHostAddress());
}
![](https://img.haomeiwen.com/i2955260/0099f5b50527b3a5.png)
URL
![](https://img.haomeiwen.com/i2955260/49f92786824cb353.png)
一个网址就是一个URL,如“www.baidu.com”就是一个URL
![](https://img.haomeiwen.com/i2955260/b757f760253764d6.png)