twisted搭的 TCP服务器怎么关闭连接下来的客户
twisted搭的 TCP服务器如何关闭连接上来的客户
Linux系统下
twisted linstenTCP 后 设备可以连接上来 我查看了下终端并没有 找到有新开进程(可能是我粗心)我认为 tiwsted不是新开进程 而是新开线程 来 服务客户
现在遇到问题:我listen后 ,客户机 若没有连上 会定时连接到服务器(长连接) , 连上后 tiwsted 会新开线程 去服务这个客户 , 但是我listen的端口不只一个 , 如果一个客户的需求 发生变化 , 我需要 动态的更换 factroy 而不是 关闭整个服务器程序。
所以 我想要关闭 连接在 某个端口上的所有设备(例如端口 6969),在次期间 更换工厂 , 然后 重新 listen此端口 , 等到 客户机再次连接时 就可以使用 新的协议 , 而不影响 我listen的其他端口
关闭 连接在 某个端口上的所有设备 如何实现 !!(什么方法都行 急啊 救命啊)
,twisted 里面只找到了 stopListening 他可以停止listening 可是, 已连的客户并不会断开
(因为客户除特殊原因 不会自动断开)
------解决方案--------------------
stopListening返回的是个defer,你在上面增加一个callback就行了
这个的实现是调用的twisted.internet.tcp.Port的stopListening,然后会在connectionLost方法里关闭对应的socket和factory。
Linux系统下
twisted linstenTCP 后 设备可以连接上来 我查看了下终端并没有 找到有新开进程(可能是我粗心)我认为 tiwsted不是新开进程 而是新开线程 来 服务客户
现在遇到问题:我listen后 ,客户机 若没有连上 会定时连接到服务器(长连接) , 连上后 tiwsted 会新开线程 去服务这个客户 , 但是我listen的端口不只一个 , 如果一个客户的需求 发生变化 , 我需要 动态的更换 factroy 而不是 关闭整个服务器程序。
所以 我想要关闭 连接在 某个端口上的所有设备(例如端口 6969),在次期间 更换工厂 , 然后 重新 listen此端口 , 等到 客户机再次连接时 就可以使用 新的协议 , 而不影响 我listen的其他端口
关闭 连接在 某个端口上的所有设备 如何实现 !!(什么方法都行 急啊 救命啊)
(因为客户除特殊原因 不会自动断开)
------解决方案--------------------
stopListening返回的是个defer,你在上面增加一个callback就行了
这个的实现是调用的twisted.internet.tcp.Port的stopListening,然后会在connectionLost方法里关闭对应的socket和factory。