import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
* 简单java socket 服务端
* 使用
* >> telnet
* >> open 127.0.0.1 10000
* >> hello word
*
*/
/**
*
* @author luotianzhu
*/
public class Server {
public static void main(String args[]) throws IOException {
final ServerSocket server = new ServerSocket(10000);
while (true) {
final Socket socket = server.accept();
new Thread(new Runnable() {
public void run() {
try {
InputStream is = socket.getInputStream();
OutputStream out = socket.getOutputStream();
out.write("welcome to socket server..".getBytes());
out.write('\b');
out.flush();
//不停的读取数据
int blen = 100;
byte[] b = new byte[blen];
int i = 0;
int plen = 1;
while (true) {
//读取一个字节到byte
if (is.read(b, i, plen) == -1) {
break;
}
if ((char) b[i] == '\n') {
b[i] = '\0';
System.out.println(
"Thread"+
Thread.currentThread().getId() +
">>" +
new String(b, "gb2312")
);
//原样输出到客户端
out.write(b);
out.write('\n');
out.flush();
//重置缓存
i = 0;
for (int j = 0; j < blen; j++) {
b[j] = '\0';
}
//结束当次循环
continue;
}
i++;
}
} catch (Exception e) {
}
}
}).start();
}
}
}
分享到:
2011-07-22 23:18
浏览 626
评论