import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.Socket;public class Tt { /**
* @param args
*/
public static void main(String[] args)
{
Socket sock;
int nRtn = 0;
InetSocketAddress IpInfo;
PrintWriter out;
BufferedReader sockIn;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("------- 终端维护系统 -------");
System.out.println("1. 上传文件");
System.out.println("2. 下载文件");
try
{
nRtn = in.read();
in.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
switch(nRtn)
{
// 上传文件
case '1':
break;
// 下载文件
case '2':
System.out.println("远程终端文件目录");
IpInfo = new InetSocketAddress("127.0.0.1", 9897);
sock = new Socket();
try
{
sock.connect(IpInfo, 100);
sock.setSoTimeout(3000);
out = new PrintWriter(sock.getOutputStream(), true);
sockIn = new BufferedReader(new InputStreamReader(sock.getInputStream())) ;
out.write("ls");
char[] chBuf = new char[512];
sockIn.read(chBuf);
sockIn.close();
out.close();
sock.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
break;
default:
break;
}
System.out.println("end."); }
}sockIn.read(chBuf); 这行总是收不到服务器的回应? 是不是我的用法不对啊?服务器端是vc写的一直在监听, 用vc写了一个测试程序连接后发"ls" 可以收到回应, 但这个java程序不知为什么总是收不到. 请大家指教.
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.Socket;public class Tt { /**
* @param args
*/
public static void main(String[] args)
{
Socket sock;
int nRtn = 0;
InetSocketAddress IpInfo;
PrintWriter out;
BufferedReader sockIn;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("------- 终端维护系统 -------");
System.out.println("1. 上传文件");
System.out.println("2. 下载文件");
try
{
nRtn = in.read();
in.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
switch(nRtn)
{
// 上传文件
case '1':
break;
// 下载文件
case '2':
System.out.println("远程终端文件目录");
IpInfo = new InetSocketAddress("127.0.0.1", 9897);
sock = new Socket();
try
{
sock.connect(IpInfo, 100);
sock.setSoTimeout(3000);
out = new PrintWriter(sock.getOutputStream(), true);
sockIn = new BufferedReader(new InputStreamReader(sock.getInputStream())) ;
out.write("ls");
char[] chBuf = new char[512];
sockIn.read(chBuf);
sockIn.close();
out.close();
sock.close();
}
catch(IOException e)
{
System.out.println(e.toString());
}
break;
default:
break;
}
System.out.println("end."); }
}sockIn.read(chBuf); 这行总是收不到服务器的回应? 是不是我的用法不对啊?服务器端是vc写的一直在监听, 用vc写了一个测试程序连接后发"ls" 可以收到回应, 但这个java程序不知为什么总是收不到. 请大家指教.
解决方案 »
- 在UNIX中调用Microsoft SQL Server 2000 Driver for JDBC报错,各位大牛帮忙看下
- 如何截取字符串中的非零字段?
- 请大家帮我分析一段代码,AffineTransform 相关
- java连接access 可以用UTF-8字符连接吗
- 子包引用父包问题
- 一个很菜的问题,谢谢高手!!
- 中文问题,根据条件判断是否进行编码转换,如何写?
- 关于JAVA调用其它JAR包的问题!!!
- 在MyEclipse中运行debug,为什么变量值总是显示为null?
- 如何用java取到相当当前日期以前的某个日期(百万火急)???
- 救助,怎么这个图显不出来呢
- 急啊 高手来 如何屏蔽键盘事件
char[] chBuf = new char[512];
sockIn.read(chBuf);
sockIn.close();
out.close();
sock.close();收到server的信息后 你没有任何动作
System.out.println(new String(chbuf));
out.write("ls"); 向服务器发送 ls
char[] chBuf = new char[512];
sockIn.read(chBuf); 接收服务器返回结果, 就这行一直收不到服务器的返回!
write之后,outputstream在等下一个数据流,因为默认情况下,outputstream里的数据流的量超过一定数之后才发送走.
out.flush();则是不管现在有没有达到这个量,先发送出去.