[b]面对socket客户端每分钟发送一次信息,这段java-socket服务端程序是否稳定?有哪里可以改进?[/b]
[code="java"]
package test;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ServeSocket{
//private static Logger logger = Logger.getLogger(ServeSocket.class);
private Socket socket;
private ServerSocket serverSocket;
//端口
private int socketPort = 10000;
//队列长度
private int queueLength = 10;
//IP地址
private String socketAddress = "127.0.0.1";
private ExecutorService executeService = Executors.newFixedThreadPool(10);
private BufferedReader br;
private FileOutputStream fos;
private OutputStreamWriter out;
public void serveSocketProgram(){
try {
serverSocket = new ServerSocket(socketPort,queueLength,InetAddress.getByName(socketAddress));
while(true){
socket = serverSocket.accept();
executeService.submit(new Runnable() {
public void run() {
try {
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(br.read()!=-1){
String message = br.readLine();
System.out.println(message);
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
br.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ServeSocket().serveSocketProgram();
}
}
[/code]