Java套接字编程之TCP编程(3)

多数服务器会监听固定的端口,这样才便于客户程序访问服务器。匿名端口一般适用于服务器与客户之间的临时通信,通信结束,就断开连接,并且ServerSocket占用的临时端口也被释放。

3 Socket 3.1 构造函数 Socket() Socket(InetAddress address, int port)throws UnknownHostException, IOException Socket(InetAddress address, int port, InetAddress localAddress, int localPort)throws IOException Socket(String host, int port)throws UnknownHostException, IOException Socket(String host, int port, InetAddress localAddress, int localPort)throws IOException

除了第一种不带参数以外,其他构造函数会尝试建立与服务器的连接。如果失败会抛出IOException错误,如果成功则返回Socket对象。
InetAddress是一个用于记录主机的类,其静态getHostByName(String msg)可以返回一个实例,其静态方法getLocalHost()也可以获得当前主机的IP地址,并返回一个实例。Socket(String host, int port, InetAddress localAddress, int localPort)构造函数的参数分别为目标IP、目标端口、绑定本地IP、绑定本地端口。

3.2 Socket方法 getInetAddress();   远程服务端的IP地址 getPort();       远程服务端的端口 getLocalAddress()   本地客户端的IP地址 getLocalPort()     本地客户端的端口 getInputStream();  获得输入流 getOutStream();   获得输出流 3.3 Socket状态 isClosed();     //连接是否已关闭,若关闭,返回true;否则返回false isConnect();      //如果曾经连接过,返回true;否则返回false isBound();     //如果Socket已经与本地一个端口绑定,返回true;否则返回false

如果要确认Socket的状态是否处于连接中,可以通过下面语句。

//判断当前是否处于连接 boolean isConnection = socket.isConnedted() && !socket.isClosed();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/465966d9ed8859b6ae878cfdb1cfa975.html