欢迎访问宙启技术站
智能推送

Java网络编程函数:Socket类和ServerSocket类的使用方法。

发布时间:2023-06-15 15:15:26

Java网络编程是指使用Java语言进行网络通信编程,常见的网络编程基础类有Socket和ServerSocket,这两个类提供了Java程序与网络之间的通讯。

1.Socket类

Java的Socket类是提供了一个套接字类,当我们要和网络中的其他程序建立连接时,必须创建一个Socket对象。Socket类主要提供了以下方法和属性:

1)属性:

    private InputStream in;

    private OutputStream out;

    private InetAddress localAddress;

    private InetAddress remoteAddress;

    private int localPort;

    private int remotePort;

    private SocketImpl impl;

2)构造方法:

    Socket(String host, int port)

    Socket(InetAddress address, int port)

    Socket(String host, int port, InetAddress localAddress, int localPort)

    Socket(InetAddress address, int port, InetAddress localAddress, int localPort)

3)方法:

(1)InputStream getInputStream():返回 Socket 关联的输入流,用来接收数据。

(2)OutputStream getOutputStream():返回 Socket 关联的输出流,用来发送数据。

(3)void close():关闭 Socket 和其相关流。

(4)boolean isConnected():测试 Socket 是否已连接。

(5)InetAddress getLocalAddress():返回本地IP地址。

(6)int getLocalPort():返回本地端口。

(7)InetAddress getInetAddress():返回远程IP地址。

(8)int getPort():返回远程端口。

(9)boolean isClosed():测试 Socket 是否已关闭。

(10)boolean isInputShutdown():测试 Socket 是否已关闭其输入流。

(11)boolean isOutputShutdown():测试 Socket 是否已关闭其输出流。

2.ServerSocket类

Java的ServerSocket类是提供了一个服务器套接字类,当我们要开发一个网络服务器应用时,必须创建一个ServerSocket对象,同时等待其他Socket来连接。ServerSocket类主要提供了以下方法和属性:

1)属性:

    private boolean created;

    private boolean bound;

    private boolean closed;

    private boolean oldImpl;

    private ServerSocketImpl impl;

2)构造方法:

    ServerSocket(int port)

    ServerSocket(int port, int backlog)

    ServerSocket(int port, int backlog, InetAddress bindAddr)

3)方法:

(1)Socket accept():侦听并接受到此套接字的连接请求。

(2)void bind(SocketAddress endpoint):将 ServerSocket 对象与指定IP和端口绑定。

(3)void close():关闭此套接字。

(4)int getLocalPort():返回此套接字的端口号。

(5)boolean isBound():返回此套接字是否已绑定到IP地址和端口号。

(6)boolean isClosed():返回此套接字是否已关闭。

Socket类和ServerSocket类是Java网络编程中比较基础的类,通过这些类,我们可以实现客户端和服务器之间的通信。在使用这些类的时候还要注意一些基本的知识点,比如网络协议、IP地址、端口号、流等等。同时,我们还应该掌握Java IO的知识,以便在网络编程中使用输入流和输出流。