黑马程序员技术交流社区
标题:
TCP客户端上传文件,服务端复制文件失败?
[打印本页]
作者:
想要那片海
时间:
2015-5-31 13:24
标题:
TCP客户端上传文件,服务端复制文件失败?
本帖最后由 想要那片海 于 2015-5-31 13:29 编辑
总是提示 java.net.SocketException: Connection reset ,请帮忙看看代码有什么问题?
复制代码
import java.io.*;
import java.net.*;
/*客户端上传文件*/
public class TCPCopyFile {
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
BufferedReader bufr=
new BufferedReader(new InputStreamReader(System.in));
String line=null;
File file=null;
while((line=bufr.readLine())!=null)
{
if(line.equals("over"))
break;
file=new File(line);
if(!(file.exists()&&file.isFile()))
{
System.out.println("文件不存在");
break;
}
if(!file.getName().endsWith(".java"))
{
System.out.println("请选择java文件");
break;
}
Socket s=new Socket("127.0.0.1",11100);
BufferedReader read=new BufferedReader(new FileReader(file));
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
String line2=null;
while((line2=read.readLine())!=null)
{
out.println(line2);
}
s.shutdownInput();
BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
String line3=in.readLine();
System.out.println(line3);
read.close();
s.close();
}
bufr.close();
}
}
复制代码
import java.io.*;
import java.net.*;
/*服务端接收文件,复制到本地硬盘*/
class CopyServer implements Runnable
{
private Socket s;
CopyServer(Socket s)
{
this.s=s;
}
public void run()
{
try {
int count=1;
String ip=s.getInetAddress().getHostAddress();
System.out.println(ip+"上传");
File dir=new File("E:\\java123\\黑马考试\\练习题");
File file=new File(dir,ip+"("+count+").txt");
if(file.exists())
file=new File(dir,ip+"("+(count++)+").txt");
PrintWriter bufw=new PrintWriter(new FileWriter(file),true);
BufferedReader in=new BufferedReader(new InputStreamReader(s.getInputStream()));
String line=null;
while((line=in.readLine())!=null)//一直在这一行提示错误
{
bufw.println(line);
}
PrintWriter out=new PrintWriter(s.getOutputStream(),true);
out.println("接收文件并复制成功");
//bufw.close();
//s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class TCPCopyServer {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket ss=new ServerSocket(11100);
while(true)
{
Socket s=ss.accept();
new Thread(new CopyServer(s)).start();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2