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方法中對輸入進行處理並產生結果然後把結果返回給客戶
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25608.html