如何实现Django启动服务器时一起启动socket监听

cimi5210 2013-08-06 11:14:56
我在manage.py中是这么写的

import os
import sys
from testSocket.tests import socketMethod

if __name__ == "__main__":

socketMethod()

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testDjango.settings")

from django.core.management import execute_from_command_line

execute_from_command_line(sys.argv)


然后下面是socketMethod的代码

def socketMethod():
print "Run socket"
s = socket.socket()

host = socket.gethostname()
port = 12345
s.bind((host, port))

s.listen(10)

while True: #这里要一直开启监听socket
c,addr = s.accept()
print addr
c.send("OK")
c.close()


现在的问题是,调用socketMethod的时候,有一个while True一直监听socket导致manage.py中一直等待socketMethod执行完成,不往下执行,导致了服务器其doing不起来.

这个问题怎么解决?

请问各位大神有没有其他的解决办法?
...全文
865 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cimi5210 2013-08-07
  • 打赏
  • 举报
回复
自己实现用多线程实现了
ImN1 2013-08-06
  • 打赏
  • 举报
回复
撇开 Django,因为我不懂 socket的循环应该最后执行,你一进入main就直接执行,其他事当然就做不了了 此外,循环内也应该设置一些条件break,让这个socket可以“优雅”地结束

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧