i am trying to connect the nokia emulator shipping with the nds 2.1 (series 60 midp, nokia 7210) with a local apache.
the apache log shows that the connection has been successfull but the emulator seems to deadlock and prints to system.out endlessly:

socket:pen0 host='prain' port=80getIpNumber host='prain' s_addr=100007f
127.0.0.1
socket:pen0-connect ipn=100007f port=80 res=0 ne=0
handle = 1784setNonBlocking fd=1784
setSocketHandle handle=1784

getSocketHandle handle=1784
setSockopt option=1 value=0
getSocketHandle handle=1784
socket::write0 o=0 l=63 fd=1784
socket::write0 bytesWritten=63
getSocketHandle handle=1784
socket::read0 off=0 len=1 handle=1784
socket::read0 bytesRead=-2
getSocketHandle handle=1784
socket::read0 off=0 len=1 handle=1784
socket::read0 bytesRead=-2
getSocketHandle handle=1784
socket::read0 off=0 len=1 handle=1784

source:

/*--------------------------------------------------
* FileViewer.java
*
* Download and view a file over a network
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;

public class FileViewer extends MIDlet implements CommandListener
{
private Display display; // Reference to Display object
private TextBox tbViewer; // View file contents in a textbox
private Command cmView; // Command to view file
private Command cmExit; // Command to exit
private String url = "http://localhost/j2me/test.php";

public FileViewer()
{
display = Display.getDisplay(this);

// Define commands
cmView = new Command("View", Command.SCREEN, 2);
cmExit = new Command("Exit", Command.EXIT, 1);

tbViewer = new TextBox("Viewer", "", 250, TextField.ANY);
tbViewer.addCommand(cmView);
tbViewer.addCommand(cmExit);
tbViewer.setCommandListener(this);
}

public void startApp()
{
display.setCurrent(tbViewer);
}

private void viewFile() throws IOException
{
HttpConnection http = null;
InputStream iStrm = null;

try
{
// Create the connection
http = (HttpConnection) Connector.open(url);

//----------------
// Client Request
//----------------
// 1) Send request method
http.setRequestMethod(HttpConnection.GET);

// 2) Send header information (this header is optional)
http.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");

// 3) Send body/data - No data for this request

//----------------
// Server Response
//----------------
// 1) Get status Line
System.out.println("Msg: " + http.getResponseMessage());
System.out.println("Code: " + http.getResponseCode());

// 2) Get header information
if (http.getResponseCode() == HttpConnection.HTTP_OK)
{
// 3) Get data (show the file contents)
iStrm = http.openInputStream();
int length = (int) http.getLength();
if (length > 0)
{
byte serverData[] = new byte[length];
iStrm.read(serverData);
tbViewer.setString(new String(serverData));
}
}
}
finally
{
// Clean up
if (iStrm != null)
iStrm.close();
if (http != null)
http.close();
}
}

public void pauseApp()
{ }

public void destroyApp(boolean unconditional)
{ }

public void commandAction(Command c, Displayable s)
{
if (c == cmView)
{
try
{
viewFile();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
else if (c == cmExit)
{
destroyApp(false);
notifyDestroyed();
}
}
}

for help very thankful:
pkc