聊天程序 - 发送不起作用

我做了一个聊天程序(在这一刻只有主持人可以发送邮件):聊天程序 - 发送不起作用

服务器:

# 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

回到顶部