這是我到目前爲止,讀取的圖像文件通過Java Socket技術
Socket clientSocket = new Socket(HOST, PORT);
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
InputStream is = socket.getInputStream();
byte[] byteChunk = new byte[1024];
int c = is.read(byteChunk);
while (c != -1){
buffer.write(byteChunk, 0, c);
c = is.read(byteChunk);
}
BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(buffer.toByteArray()));
我與我的代碼的問題是ImageIO.read()
返回null。
當我打印ByteArrayOutputStream
對象是我所得到的內容是頭部分
HTTP/1.1 200 OK
Date: Fri, 30 Dec 2011 11:34:19 GMT
Server: Apache/2.2.3 (Debian) ...........
Last-Modified: Tue, 20 Dec 2011 19:12:23 GMT
ETag: "502812-490e-4b48ad8d273c0"
Accept-Ranges: bytes
Content-Length: 18702
Connection: close
Content-Type: image/jpeg
遵循的空行加上許多線路用不同的字符,如Àã$sU,e6‡Í~áŸP;Öã…
。
同樣我的問題是ImageIO.read()
函數返回null。
在此先感謝。
由於您好像是從HTTP查詢,爲什麼不使用HTTP客戶端實現而不是原始套接字? – fge 2011-12-30 11:47:46
我需要使用套接字進行練習。 – 2011-12-30 11:49:58
打印圖像字節並在寫入前和讀取後進行比較。如果它匹配,那麼在傳輸中沒有問題。那麼我們看看其他方面。 – 2011-12-30 11:58:52