Java Socket会话一直在不断的使用,相关的问题需要不断的代码中找到答案。在下面的介绍中尼会详细的看看有关的代码。希望大家有所收获。在实际的网络环境里,同一时间只对一个用户服务是不可行的。
一个优秀的网络服务程序除了能处理用户的输入信息,还必须能够同时响应多个客户端的连接请求。在Java Socket会话中,实现以上功能特点是非常容易的。
设计原理:
主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Java 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();
- }
- }
以上就是对Java Socket会话的代码详细介绍,希望大家有所帮助。
【编辑推荐】