java socket传文件丢失数据???
宝儿78 2007-08-31 10:21:22 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());
}
}
}
}