/*
客户端
*/
import java.io.*;
import java.net.*;
class PicClientDemo
{
public static void main(String[] args) throws IOException
{
//建立Socket服务
Socket s=new Socket("127.0.0.1",10010);
FileInputStream fis=new FileInputStream("f:\\11.jpg");
//把文件写出去,图片文件是非文本数据应该使用字节流呀,把此处的PrintWriter换成OutputStream
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
int len=0;
byte[] by=new byte[1024];
while((len=fis.read(by))!=-1){
pw.println(new String(by,0,len));
}
s.shutdownOutput();
//得到服务端的回馈信息
BufferedReader bufr=new BufferedReader(new InputStreamReader(s.getInputStream()));
String str=bufr.readLine();
System.out.println(str);
fis.close();
s.close();
}
}
/*
服务端
*/
import java.io.*;
import java.net.*;
class PicServerDemo
{
public static void main(String[] args) throws IOException
{
//建立ServerSocket服务
ServerSocket ss=new ServerSocket(10010);
Socket s=ss.accept();
//然后就是得到数据
BufferedReader bufr=new BufferedReader(new InputStreamReader(s.getInputStream()));
//把文件放到指定的地方 图片文件是非文本数据应该使用字节流呀,把此处的PrintWriter换成FileOutputStream
PrintWriter pw=new PrintWriter(new FileWriter("f:\\"),true);
String line=null;
while((line=bufr.readLine())!=null){
pw.println(line);
}
//然后就是给客户端回复一个信息
//也就是把信息写出去
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bufw.write("上传成功");
pw.close();
}
}
我帮你把代码修改了一下
/*
客户端
*/
import java.io.*;
import java.net.*;
class PicClientDemo
{
public static void main(String[] args) throws IOException
{
//建立Socket服务
Socket s=new Socket("127.0.0.1",10010);
FileInputStream fis=new FileInputStream("f:\\11.jpg");
//把文件写出去
OutputStream out = s.getOutputStream();
int len=0;
byte[] by=new byte[1024];
while((len=fis.read(by))!=-1){
out.write(by,o,len);
}
s.shutdownOutput();
//得到服务端的回馈信息
BufferedReader bufr=new BufferedReader(new InputStreamReader(s.getInputStream()));
String str=bufr.readLine();
System.out.println(str);
fis.close();
s.close();
}
}
/*
服务端
*/
import java.io.*;
import java.net.*;
class PicServerDemo
{
public static void main(String[] args) throws IOException
{
//建立ServerSocket服务
ServerSocket ss=new ServerSocket(10010);
Socket s=ss.accept();
//然后就是得到数据
BufferedReader bufr=new BufferedReader(new InputStreamReader(s.getInputStream()));
//把文件放到指定的地方 图片文件是非文本数据应该使用字节流呀,把此处的PrintWriter换成FileOutputStream
BufferedWriter bufin=new BufferedWriter (new OutputStreamWriter(new FileOutputStream("f:\\copy11.jpg")));
String line=null;
while((line=bufr.readLine())!=null){
bufin.write(line);
}
//然后就是给客户端回复一个信息
//也就是把信息写出去
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bufw.write("上传成功");
bufin.close();
}
} |