您的位置:

Android服务器:创建和监听ServerSocket

在Android开发中,创建和监听ServerSocket是常见的操作。ServerSocket可以让设备作为服务器,接受其他设备的连接请求,完成数据传输等操作,从而实现设备之间的通信。下面将从以下几个方面对如何创建和监听ServerSocket进行详细阐述。

一、创建ServerSocket

要创建ServerSocket,首先需要指定一个端口号。端口号范围在1-65535之间,其中0-1023是被系统保留的,一般不建议使用。创建ServerSocket有两种方式:

方式一:


try {
    ServerSocket serverSocket = new ServerSocket(8080);
} catch (IOException e) {
    e.printStackTrace();
}

方式二:


ServerSocket serverSocket = null;
try {
    serverSocket = new ServerSocket();
    serverSocket.bind(new InetSocketAddress(8080));
} catch (IOException e) {
    e.printStackTrace();
} 

方式一通过直接指定端口号来创建ServerSocket,方式二则是通过先创建ServerSocket对象,再通过bind()方法绑定一个SocketAddress来创建。

二、监听Socket连接

创建好ServerSocket之后,需要不断地监听连接请求。如果有连接请求到达,就需要创建Socket对象进行通信。代码如下:


while (true) {
    try {
        Socket socket = serverSocket.accept();
        // 处理socket连接,实现数据传输等操作
    } catch (IOException e) {
        e.printStackTrace();
    }
}

执行accept()方法会一直阻塞,直到有连接请求到达。因此通常需要在一个单独的线程中执行accept()方法。

三、关闭ServerSocket

在不需要监听连接请求的时候,需要及时关闭ServerSocket。


if (serverSocket != null && !serverSocket.isClosed()) {
    try {
        serverSocket.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

以上就是Android创建和监听ServerSocket的基本操作了。可以根据实际需求,加入数据的编解码等操作,实现设备之间的数据传输。