我如何轉換用Delphi編寫的,以JAVA德爾福Java代碼轉換
try
LLine := TMemoryStream.Create;
IdTCPClient1.IOHandler.WriteLn('atext');
IdTCPClient1.IOHandler.ReadStream(LLine, -1);
LLine.Position := 0;
LLine.Read(intval, 4); //the server is sending memstream as integer + ajpeg image
Image1.Picture.Graphic.LoadFromStream(LLine);
finally
//free
end;
上面的代碼工作完美地與德爾福的特定代碼,但現在我想得創建一個Java客戶端,但我自己的轉換是給我的錯誤(JAVA)
Image image = null ;
Socket socket = new Socket(someIP, myport);
我轉換
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
String string = "atext\n";
byte buffer[] = string.getBytes();
out.write(buffer);
in.skip(4); // i don't want the integer
image = ImageIO.read(in);
服務器總體性他完美的文本文本,但我的Java客戶端有問題總是圖像顯示空值(我分配了一個斷點,並檢查它);
是否正確使用image = ImageIO.read(in); – VibeeshanRC 2012-02-11 05:02:14
我對Java不太瞭解,但不應該像Image image = ImageIO.read(in);?我的意思是,你需要定義「圖像」變量的類型,也可以把類似System.Out.print(in.size());向控制檯輸出服務器發送的字節數,以確保服務器正在發送一些字節。 – ComputerSaysNo 2012-02-11 05:28:18
沒有問題,但請編輯您的問題,以便其他人知道而不必閱讀評論,您是否設法測試服務器是否實際發送圖像字節? – ComputerSaysNo 2012-02-11 05:36:06