일반적으로 37번 포트는 시간응답 용도로 예약되어 있는 포트이다. 하지만 최근의 대부분 서버에서는 가능한한 대부분 포트를 개방 하지 않으므로 테스트전 포트개방이 되어있는지 확인 하는것이 우선이다.

 

 

package ch13;

 

import java.io.DataInputStream;

import java.io.IOException;

import java.net.Socket;

 

public class DateAtHost extends java.util.Date {

       static int timePort = 37;

       // seconds from start of 20th century to Jan 1, 1970 00:00 GMT

       static final long offset = 2208988800L;

 

       public DateAtHost(String host) throws IOException {

              this(host, timePort);

       }

 

       public DateAtHost(String host, int port) throws IOException {

              Socket server = new Socket(host, port);

              DataInputStream din = new DataInputStream(server.getInputStream());

              int time = din.readInt();

              server.close();

 

              // 요청 서버로부터 얻은 시간을 현재 어플리케이션의 JVM시간을 설정한다.

              setTime((((1L << 32) + time) - offset) * 1000);

       }

}

 

 

'Java > Networking' 카테고리의 다른 글

기본 HTTP 웹서버 구현 – TinyHttpd Server  (0) 2013.02.12
소켓통신 프로그램의 기본 구조  (0) 2013.02.07
RMI (Remote Method Invovation)  (0) 2013.02.01
Proxy Server 란  (1) 2013.02.01
Posted by Steven J.S Min
,