当前位置:实例文章 » JAVA Web实例» [文章]Android Socket 简单介绍

Android Socket 简单介绍

发布人:shili8 发布时间:2025-03-15 17:15 阅读次数:0

**Android Socket 简介**

在 Android 开发中,Socket 是一种用于网络通信的 API。它允许应用程序与服务器或其他设备进行数据交换。Socket 是一个非常重要的组件,几乎所有的网络应用都需要使用它。

**什么是 Socket?**

Socket(套接字)是一种抽象层,它使得两个独立的进程之间可以通信。Socket 提供了一个接口,使得应用程序可以发送和接收数据包。Socket 可以理解为一个虚拟的通讯管道,通过这个管道,可以传递数据。

**Android Socket 的基本概念**

在 Android 中,Socket API 提供了两个主要类:`Socket` 和 `ServerSocket`。

* `Socket`:用于客户端连接服务器。
* `ServerSocket`:用于服务器端监听客户端的连接请求。

**创建 Socket**

要使用 Socket,我们需要创建一个 Socket 对象。下面是示例代码:

javaimport android.os.Bundle;
import android.util.Log;

import java.net.Socket;
import java.net.UnknownHostException;

public class MainActivity extends AppCompatActivity {

 @Override protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 // 创建 Socket 对象 try {
 Socket socket = new Socket("192.168.1.100",8080); // IP 和端口号 Log.d("MainActivity", "Socket created successfully");

 // 使用 Socket 进行通信...

 } catch (UnknownHostException e) {
 Log.e("MainActivity", "Unknown host exception: " + e.getMessage());
 } catch (IOException e) {
 Log.e("MainActivity", "IO exception: " + e.getMessage());
 }
 }
}


**创建 ServerSocket**

要使用 ServerSocket,我们需要创建一个 ServerSocket 对象。下面是示例代码:

javaimport android.os.Bundle;
import android.util.Log;

import java.net.ServerSocket;
import java.net.Socket;

public class MainActivity extends AppCompatActivity {

 @Override protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 // 创建 ServerSocket 对象 try {
 ServerSocket serverSocket = new ServerSocket(8080); // 端口号 Log.d("MainActivity", "ServerSocket created successfully");

 while (true) {
 Socket socket = serverSocket.accept(); // 等待客户端连接 Log.d("MainActivity", "Client connected: " + socket.getInetAddress());

 // 使用 Socket 进行通信...

 socket.close();
 }

 } catch (IOException e) {
 Log.e("MainActivity", "IO exception: " + e.getMessage());
 }
 }
}


**Socket 通信示例**

下面是一个简单的 Socket 通信示例:

javaimport android.os.Bundle;
import android.util.Log;

import java.io.IOException;
import java.net.Socket;
import java.nio.charset.StandardCharsets;

public class MainActivity extends AppCompatActivity {

 @Override protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 // 创建 Socket 对象 try {
 Socket socket = new Socket("192.168.1.100",8080); // IP 和端口号 Log.d("MainActivity", "Socket created successfully");

 // 发送数据 String data = "Hello, Server!";
 byte[] bytes = data.getBytes(StandardCharsets.UTF_8);
 socket.getOutputStream().write(bytes);

 Log.d("MainActivity", "Data sent: " + data);

 // 接收数据 byte[] receivedBytes = new byte[1024];
 int bytesRead = socket.getInputStream().read(receivedBytes);
 String receivedData = new String(receivedBytes,0, bytesRead, StandardCharsets.UTF_8);

 Log.d("MainActivity", "Received data: " + receivedData);

 // 关闭 Socket socket.close();

 } catch (UnknownHostException e) {
 Log.e("MainActivity", "Unknown host exception: " + e.getMessage());
 } catch (IOException e) {
 Log.e("MainActivity", "IO exception: " + e.getMessage());
 }
 }
}


**总结**

在 Android 中,Socket 是一种用于网络通信的 API。它允许应用程序与服务器或其他设备进行数据交换。通过使用 Socket,我们可以创建客户端和服务器端连接,并进行数据交换。在本文中,我们介绍了 Socket 的基本概念、创建 Socket 和 ServerSocket 的示例代码,以及一个简单的 Socket 通信示例。

相关标签:android
其他信息

其他资源

Top