【发布时间】:2014-11-17 07:07:39
【问题描述】:
早上好,我在下面的基本服务器/客户端程序遇到问题,在我在 2 个单独的 IDLE(python) 窗口上运行这两个脚本后,客户端成功连接到服务器,并且能够发送第一条消息(例如你好),在服务器端被翻译为“b'hello'”,但我无法再次从服务器响应客户端,我收到错误:
s.send(conn, str(reply).encode('utf-8')) TypeError:必须可以转换为缓冲区,而不是套接字
服务器:
import socket
HOST = 'localhost'
PORT = 8019
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, address = s.accept()
print("Connected to", address)
while True:
data = conn.recv(1024)
print("Recieved :", repr(data))
reply = input("Reply :")
s.send(conn, str(reply).encode('utf-8'))
conn.close()
客户:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost',8019))
while True:
message = input("Your Message: ")
s.send(bytes(message,"ascii"))
print("Awaiting the reply...")
reply = s.recv(1024)
print("Recieved ", str(reply))
s.close()
我的问题如下,我如何将字符串发送回我的客户端程序?以及如何在没有“b''”格式的情况下读取从客户端发送的字符串
(附带说明,每次我重新启动服务器时,我都需要更改客户端和服务器程序上的端口,我是不是在使用后没有正确关闭端口?)
【问题讨论】:
标签: python