A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nightwish 中级黑马   /  2015-10-27 15:53  /  1333 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class Test9
  2. {  
  3.          
  4.     public static void main(String[] args)
  5.     {}  
  6.   
  7. }  
  8. //客户端  
  9. class Client
  10. {  
  11.       public static void main(String[] args) throws Exception
  12.       {  
  13.       //建立Socket服务  
  14.       Socket fileLoaderSocket = new Socket("168.168.168.94", 10005);  
  15.       //从客户端本地读取文件,并写入socket的输出流中  
  16.       OutputStream out = fileLoaderSocket.getOutputStream();  
  17.       //实例化对象fileReader
  18.       InputStream fileRead = new FileInputStream("G:\\2.mp3");  
  19.       //建立数组
  20.       byte[] buf = new byte[1024];  
  21.       int len = 0;
  22.       //判断是否读到文件末尾
  23.       while((len=fileRead.read(buf)) != -1)
  24.           {  
  25.            out.write(buf, 0, len);  
  26.           }  
  27.       //告诉服务端,文件已传输完毕  
  28.       fileLoaderSocket.shutdownOutput();  
  29.       //获取从服务端反馈的信息  
  30.       BufferedReader in = new BufferedReader(new InputStreamReader(fileLoaderSocket.getInputStream()));  
  31.       String serverBack = in.readLine();  
  32.       System.out.println(serverBack);   
  33.       //资源关闭  
  34.       fileLoaderSocket.close();  
  35.       fileRead.close();  
  36.     }  
  37. }  

  38. //服务端  
  39. class Server
  40. {  
  41.      public static void main(String[] args) throws Exception
  42.      {  
  43.       //建立服务端Socket  
  44.       ServerSocket ss = new ServerSocket(10005);  
  45.       //接收客户端Socket  
  46.       Socket fileLoaderSocket = ss.accept();  
  47.         
  48.       //打印连接信息  
  49.       String ip = fileLoaderSocket.getInetAddress().getHostAddress();  
  50.       System.out.println(ip + "...conncected");  
  51.         
  52.       //接收文件,并保存  
  53.       InputStream in = fileLoaderSocket.getInputStream();  
  54.       //实例化对象fileSave
  55.       OutputStream fileSave = new FileOutputStream("E:\\3.mp3");  
  56.       //建立数组buf
  57.       byte[] buf = new byte[1024];  
  58.       int len = 0;  
  59.       //判断是否读到文件末尾
  60.        while((len=in.read(buf)) != -1)
  61.          {  
  62.           fileSave.write(buf, 0, len);  
  63.           //刷新
  64.           fileSave.flush();  
  65.          }  
  66.       //返回文件复制情况信息  
  67.       BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fileLoaderSocket.getOutputStream()));  
  68.       out.write("文件上传成功");  
  69.       //刷新
  70.       out.flush();  
  71.       //资源关闭  
  72.       ss.close();  
  73.       fileLoaderSocket.close();  
  74.       fileSave.close();  
  75.     }  
  76. }  
复制代码



运行结果出现异常:Exception in thread "main" java.net.ConnectException: Connection timed out: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at java.net.Socket.connect(Socket.java:528)
        at java.net.Socket.<init>(Socket.java:425)
        at java.net.Socket.<init>(Socket.java:208)
        at com.itheima.Client.main(Test09.java:31)

9 个回复

倒序浏览
照毕老师和网上的代码搬运了一下,还是一样的异常,会不会是电脑设置问题?
回复 使用道具 举报
你没导包
回复 使用道具 举报

io和net包都导了没贴,还是其他什么包么?
回复 使用道具 举报
你tomcat服务器启动没?
回复 使用道具 举报
cloud1991 发表于 2015-10-27 17:29
你tomcat服务器启动没?

摊手并不是,找不到原因,估计是我电脑哪个设置出了问题
回复 使用道具 举报
回复 使用道具 举报
恩   可能吧···
回复 使用道具 举报
ip呢?对的?
回复 使用道具 举报
连接超时了,你先运行server端。然后再运行你这个client端。 注意ip地址和端口号正确与否。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马