JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--JAVA网络  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
一个Socket服务的例子! 请高手指点无法捕捉的输出如何修改?
作者:     文章来源:
访问次数:182次     加入时间:2007年01月18日
一个Socket服务的例子!
请高手指点无法捕捉的输出如何修改?
//服务端
package org.dyol.net;

import java.net.*;
import java.io.*;
import java.util.*;

public class Console {

public static void main(String args[]){
if (args.length!=1)
throw new IllegalArgumentException("unlawful number of args: USER: Console ");
new Console(Integer.parseInt(args[0]));
}

public Console(int port){
this.port = port;
try {
ServerSocket socket = new ServerSocket(port);
System.out.println("Start service on "+port);
while(true){
new Transmit(socket.accept()).start();
}
}catch (IOException e){}
}

private class Transmit extends Thread {
private String sys = System.getProperty("os.name")+" "+System.getProperty("os.arch")+" "+System.getProperty("os.version");
private Socket sock;
public Transmit(Socket sock){
this.sock = sock;
try {
input = new BufferedReader(new InputStreamReader(sock.getInputStream(),"gb2312"));
output = new PrintStream(sock.getOutputStream());
output.println(sys);
}catch(Exception e){}
}
public void run(){
System.out.println("while(true){
try {
synchronized(output){
cmd = input.readLine();
if( cmd == null ) break;
System.out.println("Start Command");
System.out.println("[ "+new Date().toString()+" Receive COMMAND From : "+sock.getInetAddress()+" ]: "+cmd);
proc = Runtime.getRuntime().exec(cmd);
dis = new BufferedReader(new InputStreamReader(proc.getInputStream(),"gb2312"));
}
synchronized(output){
while((msg = dis.readLine())!=null){
if(msg.equals("EXIT".toLowerCase()))break;
output.println(msg);
}
}
System.out.println("End Command");
}catch (IOException e){
break;
}
}
System.out.println("End Thread ---------------------->");
}
}

private int port = 520;
private BufferedReader input;
private PrintStream output;
private String cmd;
private Process proc;
private String msg;
private BufferedReader dis ;

}


//客户端
import java.io.*;
import java.net.*;

public class Client {
public static void main(String[] args){
if (args.length != 2)
throw new IllegalArgumentException("Wrong number of args");
String host = args[0];
int port = Integer.parseInt(args[1]);
new Client(host, port);
}
public Client(String host,int port){
try {
Socket s = new Socket(host, port);
final BufferedReader echo=new BufferedReader(new InputStreamReader(s.getInputStream(),"gb2312"));
PrintWriter ps = new PrintWriter(s.getOutputStream());
BufferedReader cmd = new BufferedReader(new InputStreamReader(System.in,"gb2312"));
final PrintWriter pis = new PrintWriter(System.out, true);
pis.println("Connected to "+s.getInetAddress()+":" + s.getPort());
Thread t = new Thread() {
public void run() {
char[] buffer = new char[1024];
int ch;
try {
while((ch = echo.read(buffer)) != -1) {
for(int i = 0; i < ch; i++) {
if (buffer[i] == ' ') pis.println();
else pis.print(buffer[i]);
}
pis.flush();
}
}catch (IOException e){
pis.println(e);
}
pis.println("Connection closed by server.");
System.exit(0);
}
};
t.setPriority(Thread.currentThread().getPriority() + 1);
t.start();
String line;
while((line = cmd.readLine()) != null) {
ps.print(line + " ");
ps.flush();
}
s.close();
pis.println("Connection closed by client.");
System.exit(0);
}catch (Exception e) {}
}
}
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号