本帖最后由 张亚青 于 2013-3-25 11:01 编辑
- package chapter17;
- import java.net.*;
- import java.io.*;
- /**
- 需求:
- 1,使用TCP传输定义两个类 分别是客户端(TextClient)和服务端(TextServer);
- 2.服务端开启后,客户端连接服务端,并向服务端发送文件;
- 3.服务端接受数据,存储成功后返回给客户端提示“上传成功”;
- 4.客户端关闭资源。
- */
- class TextClient
- {
- public static void main(String[] args) throws Exception
- {
- //创建套接字客户端
- Socket s=new Socket("asus-PC",1006);
- //创建本地上传文件的文件流对象
- BufferedReader br=new BufferedReader(new FileReader("01IPDemo.java"));
- //获取并封装套接字客户端中的输出流
- PrintWriter out=new PrintWriter(s.getOutputStream(),true);
- String line=null;
- while ((line=br.readLine())!=null)
- {
- out.println(line);
- }
- //禁用客户端套接字的输出流
- s.shutdownOutput();
- //接收服务端发来的提示并显示在控制台
- BufferedReader bufIn=new BufferedReader (new InputStreamReader (s.getInputStream()));
- String str=bufIn.readLine();
- System.out.println(str);
- //关闭资源
- br.close();
- s.close();
- }
- }
- class TextServer
- {
- public static void main(String [] args) throws Exception
- {
- //创建服务端套接字
- ServerSocket ss=new ServerSocket(10006);
- //获取客户端套接字
- Socket s=ss.accept();
- //获取客户端ip并且显示在控制台
- String name=s.getInetAddress().getHostName();
- System.out.println(name+"...........connected");
- //封装相应的流
- BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
- PrintWriter out=new PrintWriter(new FileWriter("server.txt"));
- //接收客户端数据并且存储在服务端
- String line=null;
- while ((line =bufIn.readLine())!=null)
- {
- out.println(line);
- }
- //发给客户端提示
- PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
- pw.println("上传成功");
- //关闭资源
- out.close();
- s.close();
- ss.close();
- }
- }
复制代码 以上代码编译可以通过,为什么运行的时候会报异常?
|