일반적으로 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 |