Android的网络通信很多都是基于socket,在这里说一下简单的Android的socket通信的例子。在这里我们模拟一下群聊。
首先我们了解一下什么是socket,socket又称“套接字”,应用程序通常通过“套接字”向网络发出请求或者应答请求。在Java中Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络链接使用的,连接成功后应用程序的两端都会产生一个Socket实例,操作这个实例,我们就可以完成回话了。
Socket链接建立的过程:
1.服务器监听
2.客户端发出请求
3.建立链接
4.通信
服务端的代码:
package com.example.testmysetversocket.main;
/**
* 启动线程开始监听
* @author Allen
*
*/
public class MyServerSocket {
public static void main(String[] args) {
new ServerListener().start();
}
}
package com.example.testmysetversocket.main;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
/**
* 监听客户端请求的线程类
* @author Allen
*
*/
public class ServerListener extends Thread {
@Override
public void run() {
//1-65535
try {
ServerSocket serverSocket = new ServerSocket(12345);
//循环监听来自客户端的连接
while (true) {
//block
Socket socket = serverSocket.accept();
//建立连接
JOptionPane.showMessageDialog(null, "有客户端链接到了本机的12345端口");
//将socket传递给新的线程
ChatSocket cs = new ChatSocket(socket);
cs.start();
ChatManager.getChatManager().add(cs);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package com.example.testmysetversocket.main;
import java.util.Vector;
/**
*