我是Java新手,所以我需要幫助。我正在編寫一個應用程序,將onClick發送一個字符串到服務器和服務器需要返回一個圖像使用套接字。所以我的客戶端是Android,服務器端是PC-java。 我認爲我的服務器端是好的(因爲他打印出所有的system.out.print命令),但我的客戶端不好。請告訴我我的錯誤在哪裏?謝謝!通過套接字發送圖片(Java PC - Android)
這裏是我的服務器(PC)端(插座交付直通功能參數)的代碼:
try {
dataInputStream = new DataInputStream(socket.getInputStream());
poruka = "" + dataInputStream.readUTF();
System.out.print(poruka);
int bytecount = 2048;
byte[] buf = new byte[bytecount];
OutputStream OUT = socket.getOutputStream();
BufferedOutputStream BuffOUT = new BufferedOutputStream(OUT, bytecount);
FileInputStream in = new FileInputStream("screenShot.jpg");
int i = 0;
while ((i = in.read(buf, 0, bytecount)) != -1) {
BuffOUT.write(buf, 0, i);
System.out.print("check" + buf[0]);
BuffOUT.flush();
}
in.close();
BuffOUT.close();
System.out.print("over");
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
socket.close();
dataInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
,這裏是我的客戶端(安卓)側:
Socket socket = null;
DataOutputStream dataOutputStream = null;
try {
socket = new Socket(IPadresa, 8888);
dataOutputStream = new DataOutputStream(socket.getOutputStream());
slanje = "hy string";
dataOutputStream.writeUTF(slanje);
FileOutputStream outToFile = new FileOutputStream("slika.jpg");
int bytecount = 2048;
byte[] buf = new byte[bytecount];
InputStream IN = socket.getInputStream();
BufferedInputStream BuffIN = new BufferedInputStream(IN, bytecount)
int i = 0;
int filelength = 0;
while((i = BuffIN.read(buf, 0, bytecount)) != -1) {
filelength += i;
outToFile.write(buf, 0, i);
outToFile.flush();
}
IN.close();
BuffIN.close();
dataOutputStream.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
更多的信息: 在服務器端,我可以看到從客戶端發送的字符串。我有這個System.out.print(「over」);命令打印每次我發送字符串到服務器。另外我有System.out.print(「check」+ buf [0]);從服務器打印出來很多次。所以這就是爲什麼我認爲客戶端有問題。
而我的客戶端不會拋出任何異常......但我注意到客戶端從未通過while循環。它卡在那裏。
請告訴我們是什麼讓你覺得客戶端存在問題。怎麼了?任何例外?客戶端和服務器端的輸出是什麼? – 2013-02-16 23:17:59
我編輯了我的問題,以便您可以閱讀是什麼讓我覺得客戶端存在問題。感謝您的幫助! – jpetrucci 2013-02-17 00:00:13