本项目为在Android Studio环境下运行的完整代码示例,展示如何实现两台安卓设备间通过Socket进行数据通信。适合开发者学习和实践网络编程技术。
要实现一个简单的Socket通信程序,可以使用两台手机分别运行服务端(socket server)和客户端(socket client)。每个设备需要安装对应的工程来完成这一任务。下面是一个完整的源码示例:
**服务器端代码:**
```java
import java.io.*;
import java.net.*;
public class SocketServer {
public static void main(String[] args) throws IOException{
ServerSocket ss = new ServerSocket(12345); // 监听的端口号为 12345
System.out.println(等待客户端连接...);
while(true){
Socket socket = ss.accept();
Runnable worker = new SocketWorker(socket);
Thread thread = new Thread(worker);
thread.start();
System.out.println(新线程开始运行);
}
}
}
class SocketWorker implements Runnable {
private final Socket clientSocket;
public SocketWorker(Socket socket){
this.clientSocket=socket;
}
@Override
public void run(){
try{
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine, outputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(从客户端收到消息: + inputLine);
// 这里可以根据需要处理输入信息,然后发送响应
outputLine = 收到了你的消息;
out.println(outputLine);
}
} catch (IOException e){
e.printStackTrace();
}
}
}
```
**客户端代码:**
```java
import java.io.*;
import java.net.*;
public class SocketClient {
public static void main(String[] args) throws IOException{
String serverAddress = 192.168.0.1; // 服务器的IP地址,根据实际情况修改
int portNumber = 12345; // 端口号与服务端一致
Socket socket = new Socket(serverAddress, portNumber);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(从服务器收到消息: + inputLine);
// 用户输入
String userInput = Hello Server;
out.println(userInput);
}
}
}
```
以上代码展示了如何使用Java实现一个简单的Socket通信程序。服务端等待来自客户端的连接,而客户端则尝试连接到指定地址和端口的服务端,并进行数据交换。