revert commit 4b25d3447690f383664d98ea2c89db5f833a6e4a "Fix testng-eclipse issue #48: testng-eclipse will be hang if run RemoteTestNG with error argument."
diff --git a/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java b/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java
index d5bf5f1..7c5d06b 100644
--- a/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java
+++ b/src/main/java/org/testng/remote/strprotocol/BaseMessageSender.java
@@ -118,24 +118,33 @@
     if (m_inStream != null) {
       p("Receiver already initialized");
     }
-    ServerSocket serverSocket = null;
+    ServerSocket serverSocket;
     try {
       p("initReceiver on port " + m_port);
       serverSocket = new ServerSocket(m_port);
       serverSocket.setSoTimeout(5000);
 
-	  Socket socket = serverSocket.accept();
-	  m_inStream = socket.getInputStream();
-	  m_inReader = new BufferedReader(new InputStreamReader(m_inStream));
-	  m_outStream = socket.getOutputStream();
-	  m_outWriter = new PrintWriter(new OutputStreamWriter(m_outStream));
+      while (true) {
+        try {
+          Socket socket = serverSocket.accept();
+          m_inStream = socket.getInputStream();
+          m_inReader = new BufferedReader(new InputStreamReader(m_inStream));
+          m_outStream = socket.getOutputStream();
+          m_outWriter = new PrintWriter(new OutputStreamWriter(m_outStream));
+
+          break;
+        }
+        catch (IOException ioe) {
+          try {
+            Thread.sleep(100L);
+          }
+          catch (InterruptedException ie) {
+            // Do nothing.
+          }
+        }
+      }
     }
     catch(SocketTimeoutException ste) {
-      try {
-		serverSocket.close();
-	  } catch (IOException e) {
-		  // ignore
-	  }
       throw ste;
     }
     catch (IOException ioe) {