我想写一个PC与路由器连接的软件,我先用SNIFFER抓包路由器自带的软件,发现是这个过程
   过程如下:
 1、PC发起连接  目的端口 65432,本地端口随机
2、路由器响应发往PC机 目的端口65433,源端口65432,以后路由器与PC交互都是用这两个端口。
说明PC是用本地65433端口监听的,发送时候用的本地端口是随机其他端口,发送目的端口为65432我在程序中这样做的:
   winsock1.remotehost="10.16.65.1"
   winsock1.remoteport=65432
   winsock1.localport=6500(随便定的)
   winsock1.bind 65433结果发现仍然连不上,但是能收到路由器的反映(可惜是乱码),抓包看到,PC发送端口变为了65433,所以可能正是这个原因造成仍然连不上,即PC 65433只能做监听不可以做发送用。
请教前辈们,我该怎么让PC发送用别的端口,接收用65433?

解决方案 »

  1.   

    不好意思:有点小错误,在第2中:“2、路由器响应发往PC机 目的端口65433,源端口65432,以后路由器与PC交互都是用这两个端口。”路由器目的、源端口都是65433,就是说路由器是用自己的65433发送,65432接收。不过这个没有关系,我只是想为PC想个解决办法。
      

  2.   

    侦听Listen可以bind绑定端口,发送,一般是随机分配的
      

  3.   

    对不起,事实上我发现,当BIND或者指定本地端口的时候,收发都是用这个端口的