/**
* 簡(jiǎn)單的Socket通訊
* 服務(wù)器端(Server)
*
* 方法列表:
* 初始化 --- public SocketServer(int serverPort)
* 開(kāi)始監聽(tīng) --- public void startAccept(SocketServerAdapter adapter)
* 關(guān)閉連接 --- public void close()
*
* @author FlySnow
*/
package com.flysnow.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer
{
private int serverPort = -1;
private ServerSocket serverSocket = null;
private Socket socket = null;
private boolean running = true;
/**
* 初始化操作
*
* @param serverPort
* Server端監聽(tīng)端口號
*/
public SocketServer(int serverPort)
{
this.serverPort = serverPort;
}
/**
* 開(kāi)始監聽(tīng)操作
*
* @param adapter
* 監聽(tīng)器
* @throws IOException
*/
public void startAccept(SocketServerAdapter adapter) throws IOException
{
this.serverSocket = new ServerSocket(serverPort);
BufferedReader reader = null;
String receiverMsg = null;
PrintStream sendMsgPrint = null;
while(this.running)
{
this.socket = serverSocket.accept();
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
receiverMsg = reader.readLine();
if(null != receiverMsg)
{
sendMsgPrint = new PrintStream(socket.getOutputStream());
adapter.receiverClientMessage(receiverMsg,sendMsgPrint);
}
}
this.socket.close();
}
/**
* 關(guān)閉連接
*/
public void close()
{
this.running = false;
}
/**
* 獲得被監聽(tīng)的端口號
*
* @return
* 被監聽(tīng)的端口號
*/
public int getServerPort() {
return serverPort;
}
/**
* 設置要監聽(tīng)的端口號
*
* @param serverPort
* 要監聽(tīng)的端口號
*/
public void setServerPort(int serverPort) {
this.serverPort = serverPort;
}
}