Android TCP服务器客户端Demo实现步骤:
- 建立TCP服务器:首先,我们需要在Android设备上建立一个TCP服务器,以便客户端能够连接到服务器。在建立TCP服务器之前,我们需要在AndroidManifest.xml文件中添加网络权限。代码如下:
<uses-permission android:name="android.permission.INTERNET" />
- 创建ServerSocket对象:在服务器端的代码中,我们需要创建一个ServerSocket对象来监听客户端的连接请求。代码如下:
ServerSocket serverSocket = new ServerSocket(PORT);
- 监听客户端连接请求:使用ServerSocket对象的accept()方法监听客户端的连接请求,并返回一个Socket对象,以便与客户端进行通信。代码如下:
Socket socket = serverSocket.accept();
- 获取输入输出流:通过Socket对象可以获取输入输出流,用于与客户端进行数据交换。代码如下:
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
- 读取客户端发送的数据:使用输入流对象的read()方法读取客户端发送的数据。代码如下:
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String data = new String(buffer, 0, bytesRead);
- 向客户端发送数据:使用输出流对象的write()方法向客户端发送数据。代码如下:
String response = "Hello, client!";
outputStream.write(response.getBytes());
- 关闭连接:数据交换完成后,需要关闭连接。代码如下:
socket.close();
serverSocket.close();
以上就是实现Android TCP服务器客户端的基本流程。接下来,我们将使用代码和注释的方式详细介绍每一步的具体操作。
首先,我们需要在AndroidManifest.xml文件中添加网络权限,以便使用网络功能。在<manifest>
标签下添加以下代码:
<uses-permission android:name="android.permission.INTERNET" />
接下来,我们将使用Java代码实现TCP服务器和客户端。
TCP服务器端代码
创建一个名为"TCPServer"的Java类,并添加以下代码:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
private static final int PORT = 12345;
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(PORT);
System.out.println("Server Started");
Socket socket = serverSocket.accept();
System.out.println("Client Connected");
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String data = new String(buffer, 0, bytesRead);
System.out.println("Client Data: " + data);
String response = "Hello, client!";
outputStream.write(response.getBytes());
socket.close();
serverSocket.close();
System.out.println("Server Stopped");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在以上代码中,我们首先创建了一个ServerSocket对象,指定了监听的端口号为12345。
然后,我们等待客户端的连接请求,当有客户端连接时,我们创建了一个Socket对象,并打印出"Client Connected"。
接着,我们获取了输入输出流,并使用输入流读取客户端发送的数据,并将其打印出来。
然后,我们向客户端发送了一个字符串"Hello, client!"。
最后,我们关闭了连接。
TCP客户端代码
创建一个名为"TCPClient"的Java类,并添加以下代码:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class TCPClient {
private static final String SERVER_IP = "127.0.0.1";
private static final int SERVER_PORT = 12345;
public static void main(String[] args) {
try {
Socket socket = new Socket(SERVER_IP, SERVER_PORT);
System.out.println("Connected to server");
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
String message = "Hello, server!";
outputStream.write(message.getBytes());
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String response = new String(buffer, 0, bytesRead);
System.out.println("Server Response: " + response);
socket.close();
System.out.println("Disconnected from server");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在以上代码中,我们创建了一个Socket对象,指定了服务器的IP地址