本帖最后由 杜鹏云 于 2012-8-18 10:30 编辑
需求:使用TCP协议写一个可以上传文件的服务器和客户端
现有两个文件:
第一个 :TcpClient.java import java.io.*; import java.net.*; class TcpClient { public static void main(String[] args) throws Exception { /*开启客户端tcp服务*/ Socket s=new Socket("127.0.0.1",10003); /*读取上传文件*/ BufferedReader br=new BufferedReader(new FileReader("adusa.java")); /*将上传文件写入网络流*/ PrintWriter pw=new PrintWriter(s.getOutputStream(),true); String line=null; while((line=br.readLine())!=null) { pw.println(line); } s.shutdownOutput();//返回传输结束标记 /*读取服务器端的反馈信息*/ BufferedReader bfrd=new BufferedReader(new InputStreamReader(s.getInputStream())); String str=bfrd.readLine(); System.out.println(str); br.close(); s.close(); } }
第二个文件:TcpServer.java import java.io.*; import java.net.*; class TcpServer { public static void main(String[] args) throws Exception { /*开启服务器端tcp服务*/
ServerSocket ss=new ServerSocket(10003); /*获取客户端连接*/ Socket s=ss.accept(); /*读取客户端的数据*/ BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); /*将客户端的数据写入服务器端*/ PrintWriter pw=new PrintWriter(new FileWriter("upload.txt"),true); String line=null; while((line=br.readLine())!=null) { pw.println(line); } PrintWriter bw=new PrintWriter(s.getOutputStream(),true); bw.println("上传成功"); pw.close(); s.close();
} } 问题:原先通过开启两个命令行窗口分别模拟客户端和服务器端,来实现文件的上传服务。
现在要求通过eclipse创建一个java文件,用多线程来实现上传文件的服务器和客户端的功能。不知道哪位高手指点一下,如何来做??
|