首页 > 代码库 > Socket编程(一)
Socket编程(一)
一. 网络编程的基础知识
1. IP地址: 用来标识每一台不同的主机。 Socket = IP + 端口号
2. 端口号: 一台主机有0~65535个端口,其中0~1023为系统端口,主机编写的程序一般不能用系统端口,端口号主要用来标识每台主机运行的不同的程序。
3. 协议: 程序间通信所遵守的规定。 常用协议以及端口号(HTTP超文本传输协议 80, FTP文件传输协议 21, SMTP简单邮件传输协议 25, Telent 远程登录服务 23)
二. Java中的网络支持
1. InetAddress类: 用于标识网络上的硬件资源(主机名,IP地址,等信息)
2. URL: 统一资源定位符,通过URL可以直接读取或写入网络上的数据
3. Socket: 使用TCP协议实现网络通信的Socket相关的类。
4. Datagram: 使用UDP协议,将数据保存在数据报中,通过网络进行通信
三.InetAddress类
该类无构造方法:
实例代码如下:
1 public static void main(String[] args) throws UnknownHostException { 2 //获取本机的InetAddress实例 3 InetAddress localHost = InetAddress.getLocalHost(); 4 System.out.println("主机名:" + localHost.getHostName()); 5 System.out.println("主机IP:" + localHost.getHostAddress()); 6 byte[] buffer = localHost.getAddress();//获取字节数组形式的IP地址 7 System.out.println("字节数组IP:" + Arrays.toString(buffer)); 8 System.out.println(localHost); 9 System.out.println(" "); 10 //根据机器名获取InetAddress实例 11 InetAddress localHost2 = InetAddress.getByName("LAPTOP-LVB2PA5A"); 12 System.out.println("主机名:" + localHost2.getHostName()); 13 System.out.println("主机IP:" + localHost2.getHostAddress()); 14 System.out.println(" "); 15 //根据IP地址获取InetAddress实例 16 InetAddress localHost3 = InetAddress.getByName("172.16.33.174"); 17 System.out.println("主机名:" + localHost3.getHostName()); 18 System.out.println("主机IP:" + localHost3.getHostAddress()); 19 }
输出结果:
主机名:LAPTOP-LVB2PA5A
主机IP:172.16.33.174
字节数组IP:[-84, 16, 33, -82]
LAPTOP-LVB2PA5A/172.16.33.174
主机名:LAPTOP-LVB2PA5A
主机IP:172.16.33.174
主机名:LAPTOP-LVB2PA5A
主机IP:172.16.33.174
从上诉例子可以看出 InetAddress类可以获得主机的名字和IP地址等信息,或者保存主机的名字和IP地址信息来为后面的通信使用。
如果有什么错误,或者我理解错误或不当的,恳请大家纠正,谢谢!嘻嘻嘻~
Socket编程(一)