android开发中,如何连接服务器,从服务器读取到数据

android开发中,如何连接服务器,从服务器读取到数据,第1张

服务器端生成JSON:

使用> URL url = new URL(urlpath);  
>服务器端可以采用多线程处理客户请求,例如:
package threadPool;
import javaioBufferedReader;
import javaioIOException;
import javaioInputStream;
import javaioInputStreamReader;
import javaioOutputStream;
import javaioPrintWriter;
import javanetServerSocket;
import javanetSocket;
import javautilconcurrentExecutorService;
import javautilconcurrentExecutors;
public class ThreadPoolServer {

private int port = 8000;
private ServerSocket serverSocket;
private ExecutorService executorService; //线程池
private final int POOL_SIZE = 4; //单个CPU时线程池中的工作线程数目

public ThreadPoolServer() throws IOException{
serverSocket = new ServerSocket(port);

//创建线程池
//Runtime 的availableProcessors()方法返回当前系统CPU的数目
//系统CPU越多,线程池中的工作线程数目越多
executorService = ExecutorsnewFixedThreadPool(RuntimegetRuntime()availableProcessors()POOL_SIZE);

Systemoutprintln("服务器已启动!!");
}

public void service(){
while(true){
Socket socket = null;
try{
socket = serverSocketaccept();
executorServiceexecute(new Handler(socket));
}catch(IOException e){
eprintStackTrace();
}
}
}
public static void main(String[] args) {
try {
new ThreadPoolServer()service();
} catch (IOException e) {
eprintStackTrace();
}
}
}
class Handler implements Runnable {
private Socket socket;
public Handler(Socket socket) {
thissocket = socket;
}
private PrintWriter getWriter(Socket socket) throws IOException {
OutputStream socketOut = socketgetOutputStream();
return new PrintWriter(socketOut, true);
}
private BufferedReader getReader(Socket socket) throws IOException {
InputStream socketIn = socketgetInputStream();
return new BufferedReader(new InputStreamReader(socketIn));
}
public String echo(String msg) {
return "echo:" + msg;
}
@Override
public void run() {
try {
Systemoutprintln("New connection accepted:" + socketgetInetAddress() + ":" + socketgetPort());
BufferedReader br = getReader(socket);
PrintWriter pw = getWriter(socket);
String msg = null;
while ((msg = brreadLine()) != null) {
Systemoutprintln(msg);
pwprintln(echo(msg));
if (msgequals("bye")) {
break;
}
}
} catch (IOException e) {
eprintStackTrace();
} finally {
try {
if (socket != null)
socketclose();
} catch (IOException e) {
eprintStackTrace();
}
}
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/10864153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存