有一个测试程序启动的时候会往某服务器发送验证数据包,协议是HTTP,80端口。
我想把这个服务器的IP地址写到本机的host文件里,然后用自己的java写的服务器分析数据包的内容。java程序的服务器部分代码: try { // start socket
ServerSocket serverSocket = new ServerSocket(80);
} catch (IOException ex) {
System.out.println("Server" + ex.getMessage());
}
System.out.println("Server is starting " + serverSocket);
Socket socket = null;
while(1)
{
socket = serverSocket.accept();
}但是java服务器一直得不到测试程序的连接信息...请问是不是方法调用错了。HTTP不能用serverSocket?该用什么方法拦截呢?
我想把这个服务器的IP地址写到本机的host文件里,然后用自己的java写的服务器分析数据包的内容。java程序的服务器部分代码: try { // start socket
ServerSocket serverSocket = new ServerSocket(80);
} catch (IOException ex) {
System.out.println("Server" + ex.getMessage());
}
System.out.println("Server is starting " + serverSocket);
Socket socket = null;
while(1)
{
socket = serverSocket.accept();
}但是java服务器一直得不到测试程序的连接信息...请问是不是方法调用错了。HTTP不能用serverSocket?该用什么方法拦截呢?
而http是顶层应用层。
所以http和serverSocket没什么直接关系。
从你的代码完全看不出想干什么。没有处理业务的任何代码。
另外客户端的请求代码也没有,没发帮你分析。
我的代码是想开启一个socket监听端口,然后监听测试程序的HTTP请求。仅仅是想获取HTTP请求,以及HTTP请求里面的数据。客户端的是一个未知的测试程序,我没有源码。只知道它采用HTTP协议往服务器发送请求,服务器的地址也知道。 我想建立一个自己的服务器,然后在本机的host里面把测试程序的服务器地址指向本机。方便自己拦截/分析客户端的请求内容
楼主你还是没明白我一楼的解释。
建议你好好补补soceket通讯的基础再来解决这个问题吧,自己花点心思补补基础。
不要胡乱猜测,浪费时间。
2.我们假设你的电脑是当做HTTP服务器,那么80端口被服务器占用了,你的java程序就不能绑定到80端口上。
10.总之。我觉得java就不是写这种程序的料
2 那个软件是否支持代理,如果支持的话设置代理地址为本地,端口为80,使用上面代码就可以,不过缺少内容的输出部分
3 可以试试fiddler2.微软出的一个工具,很小