要在Android上编写一个TCP服务器连接的代码示例,可以按照以下步骤进行操作:
AndroidManifest.xml
文件中添加以下权限:
Thread
来执行服务器连接:private class ServerThread extends Thread {
private Socket socket;
private ServerSocket serverSocket;
@Override
public void run() {
try {
// 创建ServerSocket对象,并指定端口号
serverSocket = new ServerSocket(12345);
// 侦听客户端连接
while (true) {
socket = serverSocket.accept();
// 处理客户端请求
handleClientRequest(socket);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// 处理客户端请求的方法
private void handleClientRequest(Socket socket) {
// 在这里执行服务器处理逻辑
// 例如,接收客户端发送的数据
try {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientMessage = in.readLine();
// 处理接收到的数据
// ...
// 向客户端发送响应数据
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Response from server");
// 关闭输入输出流
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
MainActivity
中启动服务器线程:public class MainActivity extends AppCompatActivity {
private ServerThread serverThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 启动服务器线程
serverThread = new ServerThread();
serverThread.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
// 停止服务器线程
if (serverThread != null) {
serverThread.interrupt();
}
}
}
这样就创建了一个简单的TCP服务器连接。在handleClientRequest
方法中,可以添加自定义的服务器处理逻辑。请注意,这只是一个基本示例,实际应用中可能需要更多的错误处理和安全措施。