为什么套接字不显示结果?
Why doesn't the socket display the result?
我尝试打印出这段代码,Pycharm 中的命令看起来像是循环遍历代码但没有显示结果,我说这是因为终端没有完成它的任务,而且没有出现美元符号。我需要知道该代码是否会产生任何输出。此代码是一些教程的副本,因此它不是我创建的。
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 5050
ADDR = (HOST, PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(ADDR)
s.listen()
print('running')
conn, addr = s.accept()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(ADDR)
s.sendall(b'Hello, world')
data = s.recv(1024)
s.close()
print('Received', repr(data))
另外,我需要知道(WSGI,ASGI)之间的关系以及它们与python中套接字的关系。
conn, addr = s.accept()
之后的代码永远不会 运行,因为 s.accept
正在阻塞。将客户端套接字的代码移动到一个单独的文件中,然后 运行 分开。
服务器代码:
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 5050
ADDR = (HOST, PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(ADDR)
s.listen()
print('running')
conn, addr = s.accept()
data = conn.recv(1024)
conn.close()
s.close()
print('Received', repr(data))
客户代码:
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 5050
ADDR = (HOST, PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(ADDR)
s.sendall(b'Hello, world')
s.close()
我尝试打印出这段代码,Pycharm 中的命令看起来像是循环遍历代码但没有显示结果,我说这是因为终端没有完成它的任务,而且没有出现美元符号。我需要知道该代码是否会产生任何输出。此代码是一些教程的副本,因此它不是我创建的。
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 5050
ADDR = (HOST, PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(ADDR)
s.listen()
print('running')
conn, addr = s.accept()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(ADDR)
s.sendall(b'Hello, world')
data = s.recv(1024)
s.close()
print('Received', repr(data))
另外,我需要知道(WSGI,ASGI)之间的关系以及它们与python中套接字的关系。
conn, addr = s.accept()
之后的代码永远不会 运行,因为 s.accept
正在阻塞。将客户端套接字的代码移动到一个单独的文件中,然后 运行 分开。
服务器代码:
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 5050
ADDR = (HOST, PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(ADDR)
s.listen()
print('running')
conn, addr = s.accept()
data = conn.recv(1024)
conn.close()
s.close()
print('Received', repr(data))
客户代码:
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 5050
ADDR = (HOST, PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(ADDR)
s.sendall(b'Hello, world')
s.close()