out.println("<tr>");
out.println("<td>客户端的端口号</td>");
out.println("<td>"+req.getRemotePort()+"</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>服务器端的端口号</td>");
out.println("<td>"+req.getLocalPort()+"</td>");
out.println("</tr>");服务器(tomcat)和客户端是同一个机子,为什么端口号不一样?
客户端端口号4874,服务器端端口号8088;

解决方案 »

  1.   

    假如说,服务器和客户端都使用同一个端口A,那么从端口A发送数据到端口A,怎么判断这个数据是从服务器发出还是从客户端发出,到底是该服务器接收还是该客户端接收,所以很显然不是一个端口
    上面两段代码都是在服务器端执行的,客户端只是一个显示,req.getLocalPort()是取得服务器的端口,然后显示在客户端的页面,req.getRemotePort()是连接服务器的客户端的端口,然后显示在客户端的页面,如果req.getRemotePort()是客户端执行的,就有可能取到8088,但是客户端是没法执行这样的代码,这样的代码是在后台服务器端执行
      

  2.   

    8088是你的服务器端口号,tomcat在这个端口上侦听访问请求。
    4874是一个随机端口,客户端机器用这个端口与8088建立连接。如果你再次请求,这个端口号又会不一样。