网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java远程方法调用(2).
.工作流引擎Shark中调用外部程序的.
.服务器端Java三剑客.
.getUTCDate 方法.
.Servlet简介.
.JAVA对象序列化保存为XML文件的工.
.Java Applet编程小技巧之文字显示.
.《实时UML与Rational Rose RealT.
.JDBC3.0有什么新特性.
.用JBuilder 9 开发一个文本编辑器.
.Think in java 3rd 中文版3.
.Java开发中关于Hibernate对多表关.
.《Effective Java》学习笔记(4).
.老康:Java开源项目Hibernate快速.
.开放源码-SMTP发信客户端 for Ja.
.用Globus Toolkit 4(GT4)构建WEB.
.通过JCA实现企业级应用程序的“即.
.Sun在开放源代码J2EE认证上又迈出.
.JAVA与数据库连接方法(二).
.凡是用到swing包的程序不能编译-.

一个Socket服务的例子! 请高手指点无法捕捉的输出如何修改?

发表日期:2008-1-5



  一个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) {}
}
}
上一篇:一个Socket服务器样板程 人气:830
下一篇:一个记事本的源程序 人气:1757
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐