所以,這裏是一些代碼:爲什麼當我聽插座
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