繁体   English   中英

Python TCP 服务器只收到多条消息中的一条消息

[英]Python TCP server receives only one message out of multiple messages

我有简单的代码询问用户的多个输入并将其发送到服务器,但服务器只收到第一条消息。 如何让服务器获取消息的 rest?

客户:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1',8000))
for i in range(1,3):
    message = input("Enter your message:")
    s.send(message.encode())
s.close()

服务器:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 8000))
s.listen(1)
print('ready')
while True:
    c,addr = s.accept()
    sentence = c.recv(1024)
    print(sentence.decode())

c.close()

我认为问题出在 server.py 第 7 行。它等待接受连接,因此不等待接收数据。

对于server.py

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 8000))
s.listen(1)
print('ready')
c,addr = s.accept()
while True:
    sentence = c.recv(1024)
    if sentence:
        print(sentence.decode())

c.close()

对于客户端client.py

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1',8000))
for i in range(1,3):
    message = input("Enter your message:")
    s.send(message.encode())
s.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM