聊天程序 - 发送不起作用
我做了一个聊天程序(在这一刻只有主持人可以发送邮件):聊天程序 - 发送不起作用
服务器:
# 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()
回答:
请注意,您在客户端收到消息两次:首先,您将收到一条消息,并检查它是否是“退出”的消息,然后秒消息被接收并打印。因此,只有偶数消息被打印,而奇数消息在if
条件中被用完。
尝试改变客户端代码如下:
while True: msg = client.recv(1024)
if msg == 'exit':
print '<System>Host disconnected the Server...'
print '<System>Program will shut down in 5 seconds'
time.sleep(5)
break
else:
print msg
以上是 聊天程序 - 发送不起作用 的全部内容, 来源链接: utcz.com/qa/266782.html