TcpClient问题(200分)

  • 主题发起人 主题发起人 cyr
  • 开始时间 开始时间
C

cyr

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠好。
我用TcpClient与TcpServer搞了一个远程测试显示局域网共享上网外部IP的程序,原理是在一台有外部固定IP的主机上运行TcpServer,其他动态IP的机上运行TcpClient,设定每一定的时间连接固定IP主机的特定端口,固定IP上的TcpServer侦听到后向TcpClient回送动态IP信息。
问题是我用防火墙软件测试到,每次TcpClient连接到TcpServer时所用的本机端口都是不同,端口号每次增加1,如第一次连接端口号是1560,第二次连接就是1561。TcpClient上每次收到TcpServer返回的IP信息后都执行Close。这样会不会造成系统资源占用不断增加?如何使得TcpClient每次连接的本地端口都使用同一端口?
 
1.不会使系统资源占用上升,不过下次连接之前最好要sleep以后,让半等待状态结束
2。这个可以用API实现,TCPClient一样可以帮定到一个端口,用TCPClient要自己该代
 
谢谢张大侠。
不过如何“下次连接之前最好要sleep以后”如何做?
是等待TcpClient进入sleep状态,如何测试?
还是命令TcpClient进入sleep,什么指令?
 
还有就是如何用TcpClient绑定到一个端口?是要改Sockets单元吗?
 
SLEEP(1)
这个总会吧
没必要绑定到一个端口,除非你想让对方作端口识别限制.
 
为什么要Sleep呢?能说明一下吗。
我用在TcpClient端一连接收到TcpServer端返回的信息后就马上TcpClient.Close;然后用定时器触发TcpClient连接,这样成吗?
 
你应该是连接到Server的某个固定端口 只不过被Listen Socket转接了吧
 
后退
顶部