黑马程序员技术交流社区

标题: tcp上传文件代码哪里出错了,求解 [打印本页]

作者: dubei1993    时间: 2016-6-1 08:04
标题: tcp上传文件代码哪里出错了,求解
package cn.itcast_01;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
//这是服务器端
  public static void main(String[] args) throws IOException {
   //创建接收端的socket对象
   ServerSocket ss=new ServerSocket(8888);
   //创建监听器对象,返回一个socket对象
   Socket s=ss.accept();
   //封装通道内流
   BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
   //封装接收端文本文件
   BufferedWriter bw=new BufferedWriter(new FileWriter("copy.txt"));
   String line=null;
   while((line=br.readLine())!=null){
    bw.write(line);
    bw.newLine();
    bw.flush();
   
   }
   s.close();
   bw.close();
  }
}

package cn.itcast_01;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
/*
*ip:169.254.90.178
* 功能:使用TCP协议写一个可以上传文件的服务器和客户端
*/
public class Test_07 {
//这是客户端
public static void main(String[] args) throws  IOException {

//创建发送端socket对象
Socket s=new Socket("169.254.90.178",8888);
//封装文本文件
BufferedReader br=new BufferedReader(new FileReader("aaa.txt"));
//封装通道内流
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line=null;
while((line=br.readLine())!=null){
  bw.write(line);
  bw.newLine();
  bw.flush();

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


作者: 549727094    时间: 2016-6-1 08:20
有异常抛出吗?或者文件路径正确吗?IP地址是对的吗,本机可以用127.0.0.1或者localhost试一下?是代码错误还是逻辑错误
作者: dubei1993    时间: 2016-6-1 08:48
549727094 发表于 2016-6-1 08:20
有异常抛出吗?或者文件路径正确吗?IP地址是对的吗,本机可以用127.0.0.1或者localhost试一下?是代码错误 ...

文件路径正确,ip地址正确。
异常抛出:Exception in thread "main" java.net.BindException: Address already in use: JVM_Bind
        at java.net.DualStackPlainSocketImpl.bind0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
        at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
        at java.net.PlainSocketImpl.bind(Unknown Source)
        at java.net.ServerSocket.bind(Unknown Source)
        at java.net.ServerSocket.<init>(Unknown Source)
        at java.net.ServerSocket.<init>(Unknown Source)
        at cn.itcast_01.ServerDemo.main(ServerDemo.java:15)
作者: 549727094    时间: 2016-6-1 08:53
dubei1993 发表于 2016-6-1 08:48
文件路径正确,ip地址正确。
异常抛出:Exception in thread "main" java.net.BindException: Address al ...

8888端口被占用了,换个端口。或者把占用这个端口的进程给关掉。
作者: dubei1993    时间: 2016-6-1 09:07
549727094 发表于 2016-6-1 08:20
有异常抛出吗?或者文件路径正确吗?IP地址是对的吗,本机可以用127.0.0.1或者localhost试一下?是代码错误 ...

我改了个端口。。。。。莫名其妙又可以了。
作者: dubei1993    时间: 2016-6-1 09:09
549727094 发表于 2016-6-1 08:53
8888端口被占用了,换个端口。或者把占用这个端口的进程给关掉。

嗯,可以了 多谢。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2