手机作为终端设备来使用,因此他的计算能力,存储能力是有限的,他的优势是携带方便,可以随时打开,而且手机通常总是处于联网状态,Android完全支持JDK本身的Tcp,Udp网络通信。在Java中TCP通信在建立虚拟链路之后两个通信实体之间并没有服务器端和客户端之分,但是在建立虚拟链路之前,必须有一个通信实体先做出“主动姿态”,主动接收来自其他通信实体的链接请求。理论的东西也不说了,直接来看代码吧!我写的这个Socket通信非常的简单,就是模拟了一个简单的CS聊天室:
首先我们来搭建服务器端,建立一个Java项目:
MyServer.java
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
public class MyServer {
public static ArrayList<Socket> socketList = new ArrayList<Socket>();
public static void main(String[] args) throws IOException{
//用指定的端口来创建一个ServerSocket
ServerSocket ss = new ServerSocket(30000);
while(true){
//如果接收到客户端Socket的链接,服务器也对应产生一个Socket
Socket s = ss.accept();
socketList.add(s);
new Thread(new ServerThread(s)).start();
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
public class ServerThread implements Runnable {
int i = 0;
//定义当前线程所处理的Socket
Socket s = null;
//该线程所处理的Socket所对应的输入流
BufferedReader br = null;
public ServerThread(Socket s) throws