gpt4 book ai didi

python - 如何在 Python 中从同一个套接字发送和接收?

转载 作者:行者123 更新时间:2023-11-28 19:15:28 24 4
gpt4 key购买 nike

我正在尝试用 Python 编写一个可以从同一个套接字发送和接收的客户端程序,但它总是给我同样的错误,地址已被使用。这是我要编写的函数。

def Login():
username=raw_input()
password=raw_input()
message=raw_input()
array=[username,password,message]

TCP_IP = '127.0.0.1'
TCP_PORT = 5563
BUFFER_SIZE = 1024 # Normally 1024, but we want fast response
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((TCP_IP, TCP_PORT))
array_string=pickle.dumps(array)
sock.send(array_string)
sock.close()

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((TCP_IP, TCP_PORT))
sock.listen(1)

conn, info = sock.accept()
while 1:
data = serverSocket.recv(1024)
if not data:break
conn.send(data)
conn.close()

最佳答案

这里有一堆真正的新手错误。

  1. 您永远无法将 TCP 套接字连接到自身。必须有两个不同的套接字。

  2. 如果您真的想在监听套接字上获取之前发送的数据,则必须创建、绑定(bind)和配置此监听套接字以在客户端连接之前(或者,在至少,与此连接尝试并行,几秒钟后,连接尝试将尝试 - 但这很可能不会在本地主机上工作)。

  3. 如果两者都处于阻塞状态,则不能在同一个线程中等待连接和接受。最简单的方法是将客户端和服务器端分离为 2 个不同的程序,并手动并行运行它们。然后,在成功调试后,您将能够在同一进程的不同线程中执行此操作,或者使用事件驱动引擎。

关于python - 如何在 Python 中从同一个套接字发送和接收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com