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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Test9
{  
          
    public static void main(String[] args)
    {}  
  
}  
//客户端  
class Client
{  
      public static void main(String[] args) throws Exception
      {  
      //建立Socket服务  
      Socket fileLoaderSocket = new Socket("168.168.168.94", 10005);  
      //从客户端本地读取文件,并写入socket的输出流中  
      OutputStream out = fileLoaderSocket.getOutputStream();  
      //实例化对象fileReader
      InputStream fileRead = new FileInputStream("G:\\2.mp3");  
      //建立数组
      byte[] buf = new byte[1024];  
      int len = 0;
      //判断是否读到文件末尾
      while((len=fileRead.read(buf)) != -1)
          {  
           out.write(buf, 0, len);  
          }  
      //告诉服务端,文件已传输完毕  
      fileLoaderSocket.shutdownOutput();  
      //获取从服务端反馈的信息  
      BufferedReader in = new BufferedReader(new InputStreamReader(fileLoaderSocket.getInputStream()));  
      String serverBack = in.readLine();  
      System.out.println(serverBack);   
      //资源关闭  
      fileLoaderSocket.close();  
      fileRead.close();  
    }  
}  

//服务端  
class Server
{  
     public static void main(String[] args) throws Exception
     {  
      //建立服务端Socket  
      ServerSocket ss = new ServerSocket(10005);  
      //接收客户端Socket  
      Socket fileLoaderSocket = ss.accept();  
        
      //打印连接信息  
      String ip = fileLoaderSocket.getInetAddress().getHostAddress();  
      System.out.println(ip + "...conncected");  
        
      //接收文件,并保存  
      InputStream in = fileLoaderSocket.getInputStream();  
      //实例化对象fileSave
      OutputStream fileSave = new FileOutputStream("E:\\3.mp3");  
      //建立数组buf
      byte[] buf = new byte[1024];  
      int len = 0;  
      //判断是否读到文件末尾
       while((len=in.read(buf)) != -1)
         {  
          fileSave.write(buf, 0, len);  
          //刷新
          fileSave.flush();  
         }  
      //返回文件复制情况信息  
      BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fileLoaderSocket.getOutputStream()));  
      out.write("文件上传成功");  
      //刷新
      out.flush();  
      //资源关闭  
      ss.close();  
      fileLoaderSocket.close();  
      fileSave.close();  
    }  
}  

23 个回复

倒序浏览
写的不错。。。回复。。。等等需要的时候去看。。。
回复 使用道具 举报
192.168.168.102--------连接成功!!
Exception in thread "main" java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at com.itheima.Test10ServerSocket.main(Test10ServerSocket.java:26)
会出现这样子的异常是什么原因啊??
回复 使用道具 举报
楼主的的,classTest9,classClient和classServer都是放在一起的吗????:(
回复 使用道具 举报
注释写的挺多
回复 使用道具 举报
mengzi987 发表于 2014-10-23 17:36
192.168.168.102--------连接成功!!
Exception in thread "main" java.net.SocketException: Connection  ...

因为readLine()方法要读到"\r\n",才算读到一行。
回复 使用道具 举报
这个应该是网络那块的,还没学习到,凑合看看
回复 使用道具 举报
luqh 中级黑马 2015-3-22 21:41:54
8#
mengzi987 发表于 2014-10-23 19:18
楼主的的,classTest9,classClient和classServer都是放在一起的吗????

同问 写到一个类中 我这边会报错
回复 使用道具 举报
Larno 来自手机 中级黑马 2015-4-23 13:59:39
9#
服务端,客户端怎么放?
回复 使用道具 举报
luqh 发表于 2015-3-22 21:41
同问 写到一个类中 我这边会报错

各自封装类,放到main函数中
回复 使用道具 举报
onETT 中级黑马 2015-4-28 01:24:09
11#
学习了。
回复 使用道具 举报

public class Test9
{  
         
    public static void main(String[] args)
    {}  
  
}


你这段代码有啥用   求解释,不是直接把server和client分开,先运行服务端再启动客户端不久可以了么?
回复 使用道具 举报
挺好!!!
回复 使用道具 举报
不错哦!!!:victory:
回复 使用道具 举报
感谢楼主的分享
回复 使用道具 举报
我对这个题的理解是, 应该先把文件名传过去, 新建一个同名的文件, 再传文件内容.

可是想了半天也没弄出来, 只好用那种 服务器端已经设定好文件路径的方法.
回复 使用道具 举报
怎么在main方法中让连各类运行啊
回复 使用道具 举报
都有main方法怎么在测试类让两个运行啊
回复 使用道具 举报
LLLLL 中级黑马 2015-10-13 18:02:33
19#
class TextClient {
       
        public static void main(String[] args) throws UnknownHostException, IOException {

                Socket s = new Socket("172.19.124.1", 10000);

                BufferedReader br = new BufferedReader(new FileReader("Demo.java"));

                PrintWriter pw = new PrintWriter(s.getOutputStream(), true);

                String line = null;

                while ((line = br.readLine()) != null) {
                        pw.write(line);
                }
                s.shutdownOutput();

                BufferedReader brIn = new BufferedReader(new InputStreamReader(s.getInputStream()));

                String str = brIn.readLine();

                System.out.println(str);

                br.close();
                s.close();
        }

}

class TextServer {
       
        public static void main(String[] args) throws IOException {

                ServerSocket ss = new ServerSocket(10000);

                Socket s = ss.accept();

                String ip = s.getInetAddress().getHostAddress();

                System.out.println(ip + "--------");

                BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));

                PrintWriter out = new PrintWriter(new FileWriter("Demo_copy.java"), true);

                String line = null;

                while ((line = br.readLine()) != null) {
                        out.write(line);
                }
                PrintWriter pw = new PrintWriter(s.getOutputStream(), true);

                pw.write("上传成功");

                s.close();
                ss.close();
                out.close();
        }

}
回复 使用道具 举报
题主威武霸气^
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马