2006年06月13日 星期二 00:29
Hello all, 在程序中建立了socket 对象,开启一个新线程bind到本地BOOTP 端口,然后 listen. 现在有产品在启动的时候通过BOOTP CLIENT 连接到本机,主线程检测客户端的连接, 如果连接成功则执行一些动作,程式结束。 但是如果程式一段时间内没有检测到客户端的连接,程式将fail. 重新开始一个工作线 程,在初始化socket 线程的时候报错,说’address already in used” 看起来前一个socket 线程还没有结束。现在想要在在工作线程结束的时候强行把 socket 线程关闭。但是看了看python lib 的threading &Thread; 好像没有 找到像windows里面的ExitThread 那样可以从外面强行关闭SOCKET线程的方法。 不知道大家有什么意见? Thanks! Palo -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060613/3de8fe74/attachment.html
2006年06月13日 星期二 00:38
c里面可以用setsockopt来设置SO_REUSEADDR,以避免这种问题。 我看python的接口几乎就是和c一模一样,应该可以设置吧 On 6/13/06, asong <asong43 at sohu.com> wrote: > > > > > Hello all, > > 在程序中建立了socket 对象,开启一个新线程bind到本地BOOTP 端口,然后listen. > > 现在有产品在启动的时候通过BOOTP CLIENT > 连接到本机,主线程检测客户端的连接,如果连接成功则执行一些动作,程式结束。 > > 但是如果程式一段时间内没有检测到客户端的连接,程式将fail. 重新开始一个工作线程,在初始化socket 线程的时候报错,说'address > already in used" > > 看起来前一个socket 线程还没有结束。现在想要在在工作线程结束的时候强行把socket 线程关闭。但是看了看python lib > 的threading &Thread; 好像没有 > > 找到像windows里面的ExitThread 那样可以从外面强行关闭SOCKET线程的方法。 > > 不知道大家有什么意见? > > Thanks! > > Palo > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > >
2006年06月14日 星期三 22:55
En ,在SocketServer.py 中的TCPServer 中本身就有allow_reuse_address这个参数, 问题解决了,谢谢了! Thanks! Palo -----邮件原件----- 发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 xxmplus 发送时间: 2006年6月13日 0:38 收件人: python-chinese at lists.python.cn 主题: Re: [python-chinese] python socket &Thread;的问题 c里面可以用setsockopt来设置SO_REUSEADDR,以避免这种问题。 我看python的接口几乎就是和c一模一样,应该可以设置吧 On 6/13/06, asong <asong43 at sohu.com> wrote: > > > > > Hello all, > > 在程序中建立了socket 对象,开启一个新线程bind到本地BOOTP 端口,然 后listen. > > 现在有产品在启动的时候通过BOOTP CLIENT > 连接到本机,主线程检测客户端的连接,如果连接成功则执行一些动作,程式结束。 > > 但是如果程式一段时间内没有检测到客户端的连接,程式将fail. 重新开始一个工作 线程,在初始化socket 线程的时候报错,说'address > already in used" > > 看起来前一个socket 线程还没有结束。现在想要在在工作线程结束的时候强行把 socket 线程关闭。但是看了看python lib > 的threading &Thread; 好像没有 > > 找到像windows里面的ExitThread 那样可以从外面强行关闭SOCKET线程的方法。 > > 不知道大家有什么意见? > > Thanks! > > Palo > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > >
Zeuux © 2025
京ICP备05028076号