我打开CMD并创建telnet连接:
telnet localhost 5555
连接将打开,服务器将打印“欢迎”,如下图所示
但是,当我在telnet窗口中输入时,它一次只发送一个字符的回复,而不是完整的句子(例如,我输入hello,它一次发送hello world一个字符),如下所示:
服务器输出:h服务器输出:e服务器输出:l服务器输出:l服务器输出:o
我希望它发送完整的单词hello或完整的句子,而不是一次发送一个字符。在
我该怎么做?在
代码如下:import socket
import sys
from _thread import *
host = ''
port = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((host, port))
except socket.error as e:
print(str(e))
s.listen(1)
def threaded_client(conn):
conn.send(str.encode('Welcome, type your info\n'))
while True:
print("Waiting for input")
data = conn.recv(1024)
print("Data: ", data)
reply = 'Server output: ' + data.decode('utf-8')
if not data:
break
conn.sendall(str.encode(reply))
conn.close()
while True:
conn, addr = s.accept()
print('connected to: '+addr[0]+':'+str(addr[1]))
start_new_thread(threaded_client, (conn,))
谢谢