我做了一個聊天程序(在這一刻只有主持人可以發送郵件):聊天程序 - 發送不起作用
服務器:
# server
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 150
server.bind((host, port))
print 'Server is open\nWaiting connections...'
server.listen(1)
while True:
client, addr = server.accept()
print 'Connected by', addr
while True:
現在的問題是:當我鍵入消息我發送它們,客戶端只能看到偶數的消息。爲什麼會發生?
msg = raw_input('>>>')
if msg == 'exit':
client.send(msg)
break
else:
client.send('<Host>' + msg)
client.close()
客戶端:
# client
import socket
import time
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 150
client.connect((host,port))
while True:
if client.recv(1024) == 'exit':
print '<System>Host disconnected the Server...'
print '<System>Program will shoot down in 5 seconds'
time.sleep(5)
break
else:
print client.recv(1024)
client.close()
你說的「只看到消息有偶數個」是什麼意思?我沒有看到任何涉及發送/接收郵件的號碼。此外,這似乎不是一個非常好的書面服務器/客戶端系統。如果您還沒有閱讀Beej的網絡編程指南,我建議您閱讀這個主題。 – Dries
所以如果我發送第一條消息,客戶端看不到任何東西,當我發送第二條消息客戶端看到它,當我發送第三條消息時,客戶端看不到它等等...感謝閱讀建議,不是很好的寫作,因爲我在與網絡開始。 – user3144605