Python论坛  - 讨论区

标题:[python-chinese] python socket &Thread的问题

2006年06月13日 星期二 00:29

asong asong43 at sohu.com
Tue Jun 13 00:29:14 HKT 2006

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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月13日 星期二 00:38

xxmplus xxmplus at gmail.com
Tue Jun 13 00:38:21 HKT 2006

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
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年06月14日 星期三 22:55

asong asong43 at sohu.com
Wed Jun 14 22:55:34 HKT 2006

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
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号