59 网络编程(一)——端口与InetSocketAddress
端口与几个CMD命令
公认端口:0-1023 比如80端口分配给www,21端口分配给FTP等
注册端口:2014-49151 分配给用户进程或引用程序
动态/私有端口:49151-65535
需要知道的CMD命令
查看所有端口 :netstat -ano
查看指定端口:netstat -ano|findstr "80"
查看指定进程:tasklist | findstr "8080"
InetSocketAddress类
套接字
套接字就像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据;而这个小口以内,也就是数据进入这个口以后,或者数据从这个口出来之前,是不知道也不需要知道的,也无需关心它如何传输,这属于网络其他层次的工作。
用于实现套接字,他可以是IP地址+端口号,也可以是 主机名+端口号
构造方法
构造方法:InetSocketAddress(InetAddress addr ,int port)
构造方法:InetSocketAddress(int port)
创建一个套接字地址,其中IP地址为通配符地址,端口号为指定值
构造方法:netSocketAddress(String hostname, int port)
常用方法
- getAddress()
- getHostName()
- getHostString()
- getPort()
代码演示
package _20191213; import java.net.InetSocketAddress; /** * InnetSocketAddress是实现套接字的一个类 * @author TEDU * */ public class InetSocketAddressTest { public static void main(String[] args) { InetSocketAddress socket1 = new InetSocketAddress("60.125.128.247",456); InetSocketAddress socket2 = new InetSocketAddress("www.baidu.com",908); System.out.println(socket1.getHostName()); System.out.println(socket2.getHostName()); System.out.println(socket1.getHostString()); System.out.println(socket2.getHostString()); System.out.println(socket1.getPort()); System.out.println(socket2.getPort()); System.out.println(socket1.getAddress()); System.out.println(socket2.getAddress()); } }
输出结果:
softbank060125128247.bbtec.net
www.baidu.com
softbank060125128247.bbtec.net
www.baidu.com
456
908
softbank060125128247.bbtec.net/60.125.128.247
www.baidu.com/61.135.169.125