java初学网络编程时遇到的Connection reset错误

本文详细介绍了一个基于TCP协议的文件传输过程,包括服务器端和客户端的实现。通过代码示例展示了如何在服务器端接收并保存从客户端发送过来的文件,以及客户端如何将本地文件上传到服务器。同时,文中还分析了在文件传输过程中可能遇到的connection reset错误及其解决方案。
package tcp;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Fileserver直接写3 {//忽略这里的中文 hhh 
	public static void main(String[] args) throws IOException {
		System.out.println("==server==");
		//1指定端口 使用Serversocket创建服务器
		ServerSocket server = new ServerSocket(8888);
		//2阻塞式等待连接 accept
		Socket client = server.accept();
		System.out.println("一个客户端已经建立连接");
		//3输入输出时的操作
		InputStream is =new BufferedInputStream(client.getInputStream()) ;
		OutputStream os =new BufferedOutputStream(new FileOutputStream("02.png"));
		byte[] flush = new byte[1024];
		int len = is.read(flush);
		while(len>=0) {
			os.write(flush,0,len);
			System.out.println(len);
			len = is.read(flush);
		}
		System.out.println("文件传输完成");
		os.flush();
		
	}
}

package tcp;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 创建客户端
 * 1建立连接:使用socket创建客户端+服务器地址和端口
 * 2操作:输入输出操作
 * 3释放资源
 * @author Administrator
 *
 */
public class Fileclient直接写3 {
	public static void main(String[] args) throws UnknownHostException, IOException {
		System.out.println("==client==");
		Socket client = new Socket("localhost",8888);
		OutputStream os = new BufferedOutputStream(client.getOutputStream());
		InputStream is = new BufferedInputStream(new FileInputStream("01.png"));
		byte[] con = new byte[1024];
		int len = -1;
		while((len=is.read(con))!=-1) {
			os.write(con,0,len);
		}
		os.flush();
		System.out.println("文件传输完成");
		client.close();//**问题出在此处客户端上传完数据后必须关闭才不会出现报错**
	}
}

附上已找到的connection reset 的报错原因:错误总结(本次错误在第四条)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值