大家好: 我写了这样一段程序连接某个服务器的80端口;
public static void main(String[] args) throws Exception{
Socket socket = new Socket("server",80);
String data = "GET index.html HTTP/1.1\r\n\r\n";
socket.getOutputStream().write(data.getBytes(),0,data.length());
socket.getOutputStream().flush();
Date d = new Date();
System.out.println(d.toString());
StringBuffer sb = new StringBuffer();
while(socket.getInputStream().available()==0);
int c;
while ((c = socket.getInputStream().read()) != -1)
sb.append((char) c);
System.out.println(sb.toString());
d = new Date();
System.out.println(d.toString());
System.out.println("done");
}
结果服务器隔了三分钟才有response,但是如果用windows自带的telnet连接上去,
打"GET index.html HTTP/1.1"接两个回车,则马上就有response显示出来。请问这个延迟问题应该怎么解决?多谢帮助!
public static void main(String[] args) throws Exception{
Socket socket = new Socket("server",80);
String data = "GET index.html HTTP/1.1\r\n\r\n";
socket.getOutputStream().write(data.getBytes(),0,data.length());
socket.getOutputStream().flush();
Date d = new Date();
System.out.println(d.toString());
StringBuffer sb = new StringBuffer();
while(socket.getInputStream().available()==0);
int c;
while ((c = socket.getInputStream().read()) != -1)
sb.append((char) c);
System.out.println(sb.toString());
d = new Date();
System.out.println(d.toString());
System.out.println("done");
}
结果服务器隔了三分钟才有response,但是如果用windows自带的telnet连接上去,
打"GET index.html HTTP/1.1"接两个回车,则马上就有response显示出来。请问这个延迟问题应该怎么解决?多谢帮助!
解决方案 »
- 应用程序中添加音乐的问题
- java在海量数据上的问题
- 请问如何判断list中的内容不重复添加?
- 求教用InstallAnywhere制作安装程序写注册表的问题?
- 100分求高手给修改一个程序 谢谢先~
- 高分求解,JAVA怎样获得SQL生成的Xml格式行集?解决立即结帖!
- 想学JAVA ,买JBuilder9.0装上,买本JBuilder的书,直接这样来学可以吗?
- 请问Applet可以通过JDBC-ODBC方式连接数据库吗
- 请哪位高手帮我解答!
- 求大神使用ImageIO输出/入位图 table=ImageIO.read(new File("image/board.jap");括号里是绝对还相对路径
- 一个File的问题
- 关于JAVA中的布局管理器!
是不是server解析有问题,换成IP地址看看速度如何?
public static void main(String[] args) throws Exception{
Socket socket = new Socket("www.google.com",80);
String data = "GET /intl/zh-CN/ HTTP/1.1\r\n\r\n";
socket.getOutputStream().write(data.getBytes(),0,data.length());
socket.getOutputStream().flush();
long start = System.currentTimeMillis();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
boolean more = true;
while (more){
String line = in.readLine();
if (line == null)
more = false;
else
System.out.println(line);
}
long end = System.currentTimeMillis();
System.out.println("耗时:" + (end - start) + "毫秒");
}