import java.net.*;
import java.io.*;public class SimpleServer {
public static void main(String args[]) {
ServerSocket s = null;
Socket s1;
String sendString = "Hello Net World!";
OutputStream s1out;
DataOutputStream dos;

// Register your service on prot 5432
try {
s = new ServerSocket(5432);
} catch(IOException e) {}

// Run the listen/accept loop forever
while(true) {
try {
// Wait here and listen for a connection
s1 = s.accept();

// get a communication stream for socket
s1out = s1.getOutputStream();
dos = new DataOutputStream(s1out);

// send your string! (UTF provides machine-independent format)
dos.writeUTF(sendString);

//Close the connection, but not the server socket
s1out.close();
s1.close();
}
catch(IOException e) {}
}
}
}

解决方案 »

  1.   

    当一个客户端请求来的时候,socketServer创建一个socket,完成客户端和服务器的通信,当通信结束的时候,socket应该是被关闭的,socketServer依然监听来之客户端的请求。把代码贴出来看看把
      

  2.   

    加个while死循环就可以一直运行了
      

  3.   

    如果你的服务器的客户会并发请求的话,
    在accept之后,最好用一个新的线程去
    处理客户的请求。
      

  4.   

    注意退出应用程序时的线程处理!!!
    while (true)//接受多个用户
    {
      if(!mRMonitorServer.getRMonitorRunning())//服务端主动退出
      {
         exitListenSocket(-1);
         return false;
       }
       try
       {
          mServerSocket.setSoTimeout(100);//waiting 100 ns ,goto      
          mSocket = mServerSocket.accept();
          mServerSocket.setSoTimeout(0);

          ConnectionOne cConnectionOne = new ConnectionOne  (                   mRMonitorServer,this,mSocket
                         ,miIncrement );
                        cConnectionOne.start();
    ...
    }
      

  5.   

    同意楼上
    将ServerSocket的accept()放在循环里
    用一个新的线程去处理accept的socket