首页 > 代码库 > 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编程(一)