所以,这里是一些代码:为什么当我听插座
obj.HOST = ""
obj.PORT = int(port.get()) # it's 100% correct PORT number
obj.srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
obj.srv.bind((obj.HOST, obj.PORT))
obj.srv.listen(1)
obj.sock, obj.addr = obj.srv.accept()
class Client(threading.Thread):
def __init__(self,from_):
if from_.ip.get() == '':
obj.HOST = 'localhost' # I am starting both programs from 1 computer, so it's 'localhost'
else:
obj.HOST = from_.ip.get()
obj.PORT = int(from_.port.get()) # it's 100% correct PORT number (the same as previous)
obj.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
obj.sock.connect((obj.HOST, obj.PORT))
threading.Thread.__init__(self)
def run(self):
command = obj.sock.recv(1024)
print command
if command == 'confirm':
print 'confirm'
elif command == 'start':
print 'start'
client = Client(cl) # cl is class, where I get port. It's works 100% correct
client.start()
我开始同样的程序在我的电脑上。一位是主持人,第二位是客户。
问题1:虽然我在等待连接,我的服务器脚本被冻结。它如何修复? 连接后两个程序都能正常工作,但是当服务器发送一些信息(字符串)时,客户端脚本冻结。
问题2:怎么那么可以对其进行修复?
什么是'obj'?该计划尚未完成。另外,你不要关闭你的套接字。 – extraneon 2010-08-27 17:11:32
obj只是与sone信息类,如主机或端口。 当程序冻结时关闭套接字是否非常重要? – vladimar 2010-08-27 17:13:31
没有一个完整的程序,我无法测试它。我不经常使用套接字,以至于我只能看到错误:) – extraneon 2010-08-27 17:25:57