我想打開一個套接字並偵聽。用PHP編寫的客戶端將發送XML請求。此刻,我只是發送字符串「測試」到它,我得到一個內存堆錯誤。來自套接字的Java堆內存錯誤
這裏是服務器我的Java代碼:
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class main {
/**
* @param args
*/
public static void main(String[] args) {
server();
}
public static void server() {
ServerSocket MyService = null;
try {
MyService = new ServerSocket(3030);
}
catch (IOException e) {
System.out.println(e);
}
Socket serviceSocket = null;
try {
serviceSocket = MyService.accept();
}
catch (IOException e) {
System.out.println(e);
}
DataInputStream in;
try {
in = new DataInputStream(serviceSocket.getInputStream());
System.out.println("DEV STEP 1");
int len = in.readInt();
System.out.println(len);
byte[] xml = new byte[len];
in.read(xml, 0, len);
//System.out.print(xml.toString());
//Document doc = builder.parse(new ByteArrayInputStream(xml));
}
catch (IOException e) {
System.out.println(e);
}
}
}
我得到的錯誤是:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at main.server(main.java:39)
at main.main(main.java:12)
我已經做了搜索,有很多這個錯誤的解釋就在這裏,但我不能解決爲什麼當我發送一個4字母字符串len是1952805748.
您是否使用DataOutputStream連接到端口3030? – 2012-01-03 00:53:56