关于daytime协议的超级简单编程问题

reget1985 2009-02-23 12:59:51
初学网络编程,怎么才能获得时间。

服务器名填tock.usno.navy.mil提示找不到服务器,如果填time.windows.com或者其他的提示Connection refused


import java.io.*;
import java.net.*;
public class SimpleDaytimeClient {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String sHostName;
/*
* Get the name of the server from the command line. No entry,use
* tock.usno.navy.mil
*/
if(args.length>0){
sHostName = args[0];
}
else{
sHostName = "tock.usno.navy.mil";
}
/*
* Opeb a socket to port 13. Prepare to receive the Daytime information.
*/
try{
Socket oSocket = new Socket(sHostName,13);
InputStream oTimeStream =oSocket.getInputStream();
StringBuffer oTime = new StringBuffer();

// Fetch the Daytime information.
int iCharacter;
while((iCharacter = oTimeStream.read()) != -1){
oTime.append((char)iCharacter);
}
// Convert Daytime to a String and output.
String sTime = oTime.toString().trim();
System.out.println("It's" + sTime + "at" + sHostName + ".");
oTimeStream.close();
oSocket.close();

}catch (UnknownHostException e){
System.err.print(e);
}catch (IOException e){
System.err.print(e);
}
}
}
...全文
217 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
reget1985 2009-02-26
  • 打赏
  • 举报
回复
虽然没满意的答案,分还是送给2位大侠。
reget1985 2009-02-24
  • 打赏
  • 举报
回复
DAYTIME协议
  基于TCP的daytime服务
  daytime服务是基于TCP的应用,服务器在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间,在传送完后关闭连接。接收到的数据被忽略。
  基于UDP的daytime服务
  daytime服务也可以使用UDP协议,它的端口也是13,不过UDP是用数据报传送当前时间的。接收到的数据被忽略。
现在我只需要找到一个实现了DAYTIME协议的服务器,并连接服务器就应该能接收到时间吧?
yingxiongtnt 2009-02-23
  • 打赏
  • 举报
回复
何必要中国哪个服务器呢,你自己主机就可以测试啊。
如假如你装了Tomcat,则主机为:"127.0.0.1"或"localhos",而端口为:8080啊
我测试了,程序在"iCharacter = oTimeStream.read()"这里阻塞了
我分析应该是:服务器没有向你的机子写数据,所以程序在那阻塞了,不往下执行了

但是,从上面可以分析的出:连接到服务器是没问题的。
如果你出现Connection refused,看是否你上了网连接到那服务器
reget1985 2009-02-23
  • 打赏
  • 举报
回复
有谁知道中国哪个服务器可用?
reget1985 2009-02-23
  • 打赏
  • 举报
回复
tock.usno.navy.mil 是美国海军观测台的服务器。
我试了其他的比如:
www.time.ac.cn为中科院国家授时中心,采用北京时间
time.nist.gov为美国标准技术院,采用格灵威时间
就提示Connection refused

好像端口固定的是13
Asinzy 2009-02-23
  • 打赏
  • 举报
回复
Socket oSocket = new Socket(sHostName,13);//这里制定了端口13,能不能换其他试试?
Asinzy 2009-02-23
  • 打赏
  • 举报
回复
报错:java.net.UnknownHostException: tock.usno.navy.mil

服务器地址能通吗?

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧