nio socket 及其开源框架 MINA 学习总结 (一)
关键字 : nio socket MINA
最近花了点时间研究了一下 nio,及其开源框架 MINA ,现把心得总结如下:
1:传统 socket:阻塞式通信
每建立一个 Socket 连接时,同时创建一个新线程对该 Socket 进行单独通信(采用阻塞的方
式通信)。这种方式具有很高的响应速度,并且控制起来也很简单,在连接数较少的时候非
常有效, 但是如果对每一个连接都产生一个线程的无疑是对系统资源的一种浪费, 如果连接
数较多将会出现资源不足的情况。
example:
server code:
java 代码
public class MultiUserServer extends Thread {
private Socket client;
public MultiUserServer(Socket c) {
this.client = c;
}
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client
.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
// Mutil User but can't parallel
while (true) {
String str = in.readLine();
System.out.println(str);
SocketLog.debug("receive message: " + str);
out.println("has receive....");
out.flush();
if (str.equals("end"))
break;
}
client.close();
} catch (IOException ex) {
}
}
public static void main(String[] args) throws IOException {
int port = 5678;