【发布时间】:2014-01-31 07:01:57
【问题描述】:
我做了一个聊天程序(此时只有主机可以发送消息):
服务器:
# 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 的网络编程指南来阅读该主题。
-
所以如果我发送第一条消息,客户端什么都看不到,当我发送第二条消息时客户端看到它,当我发送第三条消息时,客户端看不到它等等...谢谢阅读推荐,不是很好写,因为我刚开始接触网络。