Dr.*_*son 9 python client-server
我有一个包含许多线程的python程序.我正在考虑创建一个套接字,将其绑定到localhost,并让线程读/写到这个中心位置.但是我不希望这个套接字打开网络的其余部分,只127.0.0.1接受来自的连接.我将如何做到这一点(在Python中)?这是一个合适的设计吗?还是有点优雅的东西?
给定一个socket创建socket.socket(),你可以bind()在听之前使用:
socket.bind(('127.0.0.1', 80))
Run Code Online (Sandbox Code Playgroud)
使用该地址127.0.0.1表示套接字应仅绑定到本地接口.
http://www.amk.ca/python/howto/sockets/
显示一些套接字示例.我觉得这个小窍子对你很有意思
我们使用了socket.gethostname(),以便外部世界可以看到套接字.如果我们使用了s.bind(('',80))或s.bind(('localhost',80))或s.bind(('127.0.0.1',80))我们仍然会有一个"服务器" "套接字,但只能在同一台机器中看到.
我想你有答案(见下面的修正)
至于使用这种方法进行线程通信的有效性.我不确定它如何处理多个线程和读/写
编辑
下面链接似乎有一个python配方进行一些线程间的通信
http://code.activestate.com/recipes/491281/
玩得开心!
编辑
该文章是不正确的,并指出" s.bind(('',80))将绑定到INADDR_ANY "
| 归档时间: |
|
| 查看次数: |
11896 次 |
| 最近记录: |