java socket传文件丢失数据???
serversocket程序是这样的,如何解决???非常急,在线等待
import java.net.*;
import java.util.*;
import java.io.*;
import java.text.*;
import java.lang.*;
import com.conf.Dbaccess;
import com.conf.*;
import com.file.FileList;
import com.file.ReadXML;
class serverThread extends Thread {
Socket clientRequest;
//用户连接的通信套接字
BufferedReader input; //输入流
PrintWriter output; //输出流
public serverThread(Socket s)
{ //serverThread的构造器
this.clientRequest=s;
int port;
ServerSocket serverSkt;
Socket clientSkt;
BufferedReader fileInfo;
BufferedInputStream fileReader;
BufferedOutputStream fileWriter;
String fileName;
PrintStream printStream;
//接收receiveServer传来的套接字
InputStreamReader reader;
OutputStreamWriter writer;
try {
//接收客户机连接请求
printStream = new PrintStream(clientRequest.getOutputStream());
fileInfo = new BufferedReader(new InputStreamReader(clientRequest.getInputStream()));
fileName = fileInfo.readLine();
System.out.println("与" + clientRequest.getInetAddress() + "建立连接");
printStream.println("yes");
System.out.print("\nOK! 正在接收文件 " + fileName);
String szfilename="";
if(fileName.indexOf("/")>0){
szfilename= fileName.substring(fileName.lastIndexOf("/")+1,fileName.length());
fileReader = new BufferedInputStream(clientRequest.getInputStream());
fileWriter = new BufferedOutputStream(new FileOutputStream("d:\\test\\"+szfilename));
int readin;
while((readin = fileReader.read()) != -1) {
//System.out.print(".");
fileWriter.write(readin);
}
fileReader.close();
fileWriter.flush();
clientRequest.close();
System.out.println("\n文件接收完毕!");
}
}
catch(IOException e) {
System.out.println(e.toString());
}
}
}
}
import java.net.*;
import java.util.*;
import java.io.*;
import java.text.*;
import java.lang.*;
import com.conf.Dbaccess;
import com.conf.*;
import com.file.FileList;
import com.file.ReadXML;
class serverThread extends Thread {
Socket clientRequest;
//用户连接的通信套接字
BufferedReader input; //输入流
PrintWriter output; //输出流
public serverThread(Socket s)
{ //serverThread的构造器
this.clientRequest=s;
int port;
ServerSocket serverSkt;
Socket clientSkt;
BufferedReader fileInfo;
BufferedInputStream fileReader;
BufferedOutputStream fileWriter;
String fileName;
PrintStream printStream;
//接收receiveServer传来的套接字
InputStreamReader reader;
OutputStreamWriter writer;
try {
//接收客户机连接请求
printStream = new PrintStream(clientRequest.getOutputStream());
fileInfo = new BufferedReader(new InputStreamReader(clientRequest.getInputStream()));
fileName = fileInfo.readLine();
System.out.println("与" + clientRequest.getInetAddress() + "建立连接");
printStream.println("yes");
System.out.print("\nOK! 正在接收文件 " + fileName);
String szfilename="";
if(fileName.indexOf("/")>0){
szfilename= fileName.substring(fileName.lastIndexOf("/")+1,fileName.length());
fileReader = new BufferedInputStream(clientRequest.getInputStream());
fileWriter = new BufferedOutputStream(new FileOutputStream("d:\\test\\"+szfilename));
int readin;
while((readin = fileReader.read()) != -1) {
//System.out.print(".");
fileWriter.write(readin);
}
fileReader.close();
fileWriter.flush();
clientRequest.close();
System.out.println("\n文件接收完毕!");
}
}
catch(IOException e) {
System.out.println(e.toString());
}
}
}
}
...全文
相关推荐
java socket 大文件传输,快速传输(包的分片,组装)源码
Java Socket 大文件传输是网络编程中的一个关键领域,它涉及到高效的数据传输、包的分片与组装,以及网络协议的选择。
java socket实现的点对点文件传输
**错误处理和确认机制**:在传输过程中,可能会发生数据丢失或乱序,因此需要实现错误检测和纠正机制,如CRC校验或确认应答。7.
Android中Socket大文件断点上传
Socket是网络通信中的一个抽象概念,它是两台计算机之间建立连接并交换数据的通道。在Android中,我们可以使用java.net.Socket类来创建和管理Socket连接。
socket 异步传文件和信息传输
在实现"socket异步传文件和信息传输"的过程中,我们需要考虑以下关键点:1.
Socket实现文件传偷示例
在TCP/IP协议栈中,Socket通常基于TCP(传输控制协议)或UDP(用户数据报协议)。在文件传输中,我们通常选择TCP协议,因为它提供了一种可靠的数据传输方式,确保数据包按顺序到达且无丢失。


Java SE
