我用java编写了一个程序来检查浏览器发送到http服务器的内容。该程序注意到以下文本(命名它TEXT_BROWSER
)
GET / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
现在我制作了另一个程序,它将发送"TEXT_BROWSER"
到任何网站(谷歌,我的路由器(192.168.1.1))但我没有得到响应(没有来自服务器的文本)我想知道我的程序中的错误是什么。
我的java程序
//1streqbybrowser.txt contains TEXT_BROWSER<br/>
import java.net.*;
import java.io.*;
class TCPClient
{
public static void main(String argv[]) throws Exception
{
String sentence;
File f=new File("1streqbybrowser.txt");
FileReader fr=new FileReader(f);
BufferedReader br=new BufferedReader(fr);
Socket clientSocket = new Socket("192.168.1.1", 80);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while((sentence = br.readLine())!=null)
outToServer.writeBytes(sentence+"\n");
System.out.println("Sending finished");
while((sentence = inFromServer.readLine())!=null)
System.out.println(sentence);
clientSocket.close();
}
}
编辑
我将 TEXT_BROWSER 的第二行从Host: localhost
to更改Host: 192.168.1.10
为发送到我的路由器(192.168.1.1),仍然没有得到任何响应
再次编辑
我做了@andremoniy 提到的更改,但只有 TEXT_BROWSER 的 ast 行被发送到服务器并收到了一些东西,第二个循环没有结束
>GET / HTTP/1.1
< HTTP/1.1 400 Bad Request
< Content-Length: 0
< Server: RomPager/4.07 UPnP/1.0
< EXT:
<
我注意到内部循环永远不会在这里结束。
现在可能是什么原因?