本帖最后由 宋文轩 于 2011-11-16 13:38 编辑
前面你用fis读取那个java文件,返回的是一个int值,值是你读取这个文件的字节数,你将这个int值用socket的outputStream写给服务端,所以最后服务端得到的其实就只是这个字节数,13个字节是没错的,因为中间有个空格 换行的时候还有换行符 \r\n 所以最后打印就是13.
如果想输出文件信息到控制台,我该了一下你的代码 你看一下
public Person(){
public static void main(String [] args){
try {
Socket s1 = new Socket("127.0.0.1",9999);//建立socket
File f1 = new File("D:\\Program Files\\eclipse中文\\Turing\\u\\src\\g.java");
FileInputStream fis=new FileInputStream(f1);
OutputStream os=s1.getOutputStream();
byte [] b=new byte[1024*5];
int len=0;
while((len=fis.read(b))!=-1){//读写文件。
os.write(b,0,len);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public Server(){
//服务器端在监听9999端口
System.out.println("我是服务器我在9999监听........");
try {
ServerSocket ss = new ServerSocket(9999);
Socket s = ss.accept();
//接收客户端发来的信息
InputStream is=s.getInputStream();
byte[] b=new byte[1024];
int len=0;
while((len=is.read(b))!=-1){
System.out.println("客户端发来的消息为:"+new String(b,0,len,"GBK");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
|