2012-06-13 3 views
-1

클라이언트 연결을 허용하는 소켓 기반 서버가 있습니다. 문제는 서버가 하나의 클라이언트 연결 만 수락 할 수 있다는 것입니다. 여러 고객을 수용하고 싶습니다.한 소켓에 대한 여러 클라이언트 연결

서버 코드 : Conn 클래스에서

 class Conn extends Thread{ 
     ServerSocket ss; 
     Socket s; 
     public void run() 
     { 
      status.setText(status.getText()+"connecting"); 
      try{ 
      while(true) 
      { 
      ss=new ServerSocket(3000); 
      s=ss.accept(); 
      Read r=new Read(s); 
      r.start(); 
      } 
      }catch(Exception e){} 
     }    
    } 
+0

당신이 MulticastSockets에는 더 나을 거라고 생각 HTTP로 전송하기 /docs.oracle.com/javase/1.4.2/docs/api/java/net/MulticastSocket.html – Th0rndike

+0

질문의 범위를 좀 더 좁히십시오 - [코드 기반을 디버그 할 수 없습니다] (http://meta.stackexchange.com/a/135066/175248). – Makoto

답변

0

는 같은 넣어 :

try { 
    ss = new ServerSocket(3000); 
    while(true) { 
     s = ss.accept(); 
     Read r = new Read(s); 
     r.start(); 
    } 
} catch (Exception e) {} 

를 열고 서버 소켓을, 그리고 루프에서, 그 새로운 시작 들어오는 모든 연결을 받아 처리 실./:

+0

내가 한 것과 같은 것이 아닌가요? – dpanshu

+0

Nop, 소켓 생성이 루프 외부에 있습니다. 루프는 들어오는 모든 연결을 받아들이고 처리합니다. –

0

당신은 목록에 연결된 클라이언트를 유지 한 다음 모두에 들어오는 문자열을 보낼 수 있습니다 대신 메시지 만 쓴 클라이언트

+0

모든 고객에게 회신하려면 어떻게해야합니까? 한 번에 – dpanshu

+0

을 사용하면 단순한 for 루프를 사용하여 하나씩 차례대로 보낼 수 있습니다. –

관련 문제