Commit 00be617ce145eee6f9aa7c08eb23ac7bde0da04c

Kano 2013-02-15T01:36:50

API.java allow partial reads

diff --git a/API.class b/API.class
index 026ab14..d506b93 100644
Binary files a/API.class and b/API.class differ
diff --git a/API.java b/API.java
index 36c1578..54dcda9 100644
--- a/API.java
+++ b/API.java
@@ -76,6 +76,7 @@ class API
 
 	public void process(String cmd, InetAddress ip, int port) throws Exception
 	{
+		StringBuffer sb = new StringBuffer();
 		char buf[] = new char[MAXRECEIVESIZE];
 		int len = 0;
 
@@ -89,7 +90,15 @@ System.out.println("Attempting to send '"+cmd+"' to "+ip.getHostAddress()+":"+po
 			ps.flush();
 
 			InputStreamReader isr = new InputStreamReader(socket.getInputStream());
-			len = isr.read(buf, 0, MAXRECEIVESIZE);
+			while (0x80085 > 0)
+			{
+				len = isr.read(buf, 0, MAXRECEIVESIZE);
+				if (len < 1)
+					break;
+				sb.append(buf, 0, len);
+				if (buf[len-1] == '\0')
+					break;
+			}
 
 			closeAll();
 		}
@@ -100,7 +109,7 @@ System.out.println("Attempting to send '"+cmd+"' to "+ip.getHostAddress()+":"+po
 			return;
 		}
 
-		String result = new String(buf, 0, len);
+		String result = sb.toString();
 
 		System.out.println("Answer='"+result+"'");