2014-02-06 2 views
0

현재 TCP를 사용하는 ftp 클라이언트 - 서버 프로그램이 있습니다. 이제 UDP를 사용하여 작동하도록해야하므로 대신 데이터 그램 소켓을 사용해야합니다.데이터 그램 타입 소켓을위한 ServerSocket?

그들은 연결을 청취 한 다음 Socket에 연결하고 해당 소켓에 대해 별도의 스레드를 시작하는 ServerSocket을 작성하는 것이 었습니다.

그러나 이제는 DatagramSocket을 사용하여 이에 상응하는 DatagramServerSocket이 없으므로 클라이언트에 별도의 소켓을 제공 할 수있는 방법을 모릅니다. 데이터 그램을위한 서버 소켓이 있습니까?

import java.io.IOException; 
import java.net.*; 

public class Server { 

    public static void main(String[] args) throws IOException { 

     Socket sock; 
     ServerSocket servSock = new ServerSocket(4444, 600); 

     while(true){ 
      sock = servSock.accept(); 
      new ClientHandler(sock).start(); 
     } 
    } 
} 
+0

http://stackoverflow.com/questions/7521741/java-serversocket-required-for-udp-communication – Leo

답변

0

를 사용할 수 있습니다. 각 데이터 그램에 소스 주소가 있습니다. 그러면 데이터 그램의 출처를 알 수 있습니다. UDP 서버에는 하나의 소켓 만 있으면됩니다.

0

글쎄, UDP는 비 연결 프로토콜입니다. 적절한 파일 전송을 수행하는 것은 TCP와 비슷한 기능을 적절히 구현하는 것을 의미합니다.

+0

표준 UDP 기반 파일 전송 프로토콜이 있습니다. ** 간단한 FTP ** - [ RFC 1350] (http://tools.ietf.org/html/rfc1350) 및 다양한 확장 기능을 제공합니다. –

0
DatagramSocket serverSocket = new DatagramSocket(PORT_NUMBER);` 

서버 소켓으로 사용됩니다.

또는 당신은 당신의 고객에게 별도의 소켓을 제공 할 필요가 없습니다

DatagramChannel channel = DatagramChannel.open(); 
channel.socket().bind(new InetSocketAddress(9999));