Java Socket共享在使用的时候有很多的问题需要我们解决其实有不少的问题都是在源代码中可以找到答案的下面我们就来看看如何才能更好的使用有关的Java <> Socket共享服务
在实际的网络环境里同一时间只对一个用户服务是不可行的一个优秀的网络服务程序除了能处理用户的输入信息还必须能够同时响应多个客户端的连接请求在Java Socket共享中实现以上功能特点是非常容易的
Java Socket共享的设计原理
主程序监听一端口等待客户接入;同时构造一个线程类准备接管会话当一个Socket会话产生后将这个会话交给线程处理然后主程序继续监听运用Thread类或Runnable接口来实现是不错的办法
{实现消息共享}
import javaio*;
import *;
public class Server extends ServerSocket
{
private static final int SERVER_PORT = ;
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(clientgetInputStream() GB));
out = new PrintWriter(clientgetOutputStream() true);
outprintln( Welcome );
start();
}
public void run()
{
try
{
String line = inreadLine();
while (!lineequals(bye))
{
String msg = createMessage(line);
outprintln(msg);
line = inreadLine();
}
outprintln( See you bye! );
clientclose();
}
catch (IOException e)
{}
}
private String createMessage(String line)
{
xxxxxxxxx;
}
}
public static void main(String[] args) throws IOException
{
new Server();
}
}
这个程序监听端口并将接入交给CreateServerThread线程运行CreateServerThread线程接受输入并将输入回应客户直到客户输入bye线程结束我们可以在createMessage方法中对输入进行处理并产生结果然后把结果返回给客户