Android TCP服务器客户端Demo实现步骤:

  1. 建立TCP服务器:首先,我们需要在Android设备上建立一个TCP服务器,以便客户端能够连接到服务器。在建立TCP服务器之前,我们需要在AndroidManifest.xml文件中添加网络权限。代码如下:
<uses-permission android:name="android.permission.INTERNET" />
  1. 创建ServerSocket对象:在服务器端的代码中,我们需要创建一个ServerSocket对象来监听客户端的连接请求。代码如下:
ServerSocket serverSocket = new ServerSocket(PORT);
  1. 监听客户端连接请求:使用ServerSocket对象的accept()方法监听客户端的连接请求,并返回一个Socket对象,以便与客户端进行通信。代码如下:
Socket socket = serverSocket.accept();
  1. 获取输入输出流:通过Socket对象可以获取输入输出流,用于与客户端进行数据交换。代码如下:
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
  1. 读取客户端发送的数据:使用输入流对象的read()方法读取客户端发送的数据。代码如下:
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String data = new String(buffer, 0, bytesRead);
  1. 向客户端发送数据:使用输出流对象的write()方法向客户端发送数据。代码如下:
String response = "Hello, client!";
outputStream.write(response.getBytes());
  1. 关闭连接:数据交换完成后,需要关闭连接。代码如下:
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地址