我正在嘗試設計一個客戶端 - 服務器應用程序,如下所示:用戶連接到服務器,當身份驗證正常時,服務器向用戶發送一些文件。問題是這些文件是用單個文件寫的(用我的方法)。客戶端服務器應用程序文件傳輸
下面是一些代碼:
這是選擇哪一個文件必須是文件
public void processFile(int id, DataOutputStream oStream, Socket socket, int tip){
String fileName;
if(tip==0){
fileName="File"+Integer.toString(Intrebari[id])+".txt";
}else{
fileName="Image"+Integer.toString(Intrebari[id])+".jpg";
}
byte[] buffer=null;
int bytesRead = 0;
FileInputStream file=null;
try {
file = new FileInputStream(fileName);
buffer = new byte[socket.getSendBufferSize()];
while((bytesRead = file.read(buffer))>0)
{
oStream.write(buffer,0,bytesRead);
}
file.close();
} catch (IOException ex) {
System.out.println(ex);
}
}
和函數傳送功能發送
private void send(int id) throws IOException {
os.writeBytes("sendFile" + id+"\n");
System.out.println("sendFile" + id);
generatedFiles.processFile(id, os, comunicare, 0);
if (generatedFiles.Imagini[id] == 1) {
os.writeBytes("sendImage" + id+"\n");
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(clientThread.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("sendImage" + id);
generatedFiles.processFile(id, os, comunicare, 1);
}
}
我不得不提到os
是DataOutputStream
和comunicare
是Socket
類型。
我認爲問題在於我將writeBytes
與write
結合在一起。任何人都可以幫我解決這個問題嗎?我怎樣才能使服務器和客戶端接收文件和消息?
所以基本上你重塑FTP。爲什麼?這是功課嗎? – 2011-05-11 22:14:33
是的。我必須做一個多項選擇應用程序,所以我必須爲用戶輸入它的用戶名和密碼,然後從服務器(存儲在一些文本文件中)下載問題。 – 2011-05-12 10:01:57