在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的基本操作了。可以根据实际需求,加入数据的编解码等操作,实现设备之间的数据传输。