我如何转换用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