今天就跟大家聊聊有关如何深层透析Java Socket共享的设计原理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
Java Socket共享在使用的时候有很多的问题需要我们解决,其实有不少的问题都是在源代码中可以找到答案的,下面我们就来看看如何才能更好的使用有关的Java Socket共享服务。
在实际的网络环境里,同一时间只对一个用户服务是不可行的。一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在Java Socket共享中,实现以上功能特点是非常容易的。
Java Socket共享的设计原理:
主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。运用Thread类或Runnable接口来实现是不错的办法。
{实现消息共享}
import java.io.*; import java.net.*; public class Server extends ServerSocket { private static final int SERVER_PORT = 10000; public Server() throws IOException { super(SERVER_PORT); try { while (true) { Socket socket = accept(); new CreateServerThread(socket); } } catch (IOException e) {} finally { close(); } } //--- CreateServerThread class CreateServerThread extends Thread { private Socket client; private BufferedReader in; private PrintWriter out; public CreateServerThread(Socket s) throws IOException { client = s; in = new BufferedReader(new InputStreamReader(client.getInputStream(), "GB2312")); out = new PrintWriter(client.getOutputStream(), true); out.println("--- Welcome ---"); start(); } public void run() { try { String line = in.readLine(); while (!line.equals("bye")) { String msg = createMessage(line); out.println(msg); line = in.readLine(); } out.println("--- See you, bye! ---"); client.close(); } catch (IOException e) {} } private String createMessage(String line) { xxxxxxxxx; } } public static void main(String[] args) throws IOException { new Server(); } }
这个程序监听10000端口,并将接入交给CreateServerThread线程运行。CreateServerThread线程接受输入,并将输入回应客户,直到客户输入"bye",线程结束。我们可以在createMessage方法中,对输入进行处理,并产生结果,然后把结果返回给客户。
看完上述内容,你们对如何深层透析Java Socket共享的设计原理有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。