简单Python套接字服务器不在macOS上运行
我创建了一个小型Python套接字服务器代码,当我尝试连接客户端时,我得到:简单Python套接字服务器不在macOS上运行,python,python-3.x,sockets,networking,Python,Python 3.x,Sockets,Networking,我创建了一个小型Python套接字服务器代码,当我尝试连接客户端时,我得到: o错误:[Errno 57]未连接插槽 我不知道为什么会这样,即使服务器正在运行 这是我的密码: server.py client.py # Imports import socket # Variables ip_address = '127.0.0.1' ip_port = 10000 txt = 'utf-8' s = socket.socket(socket.AF_INET, socket.SOCK_STR
o错误:[Errno 57]未连接插槽
我不知道为什么会这样,即使服务器正在运行
这是我的密码:
server.py
client.py
# Imports
import socket
# Variables
ip_address = '127.0.0.1'
ip_port = 10000
txt = 'utf-8'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Code
"""Connect to the server"""
s.connect((ip_address, ip_port))
while True:
msg = s.recv(1024)
var = msg.decode(txt)
if var == "quit":
break
我已经更改了代码中的一些点,它在这里工作正常。我已经将ip_地址设置为127.0.0.1,担心MacOS的安全问题。我还删除了send函数的第二个参数 server.py
# Imports
import socket
# Variables
ip_address = '127.0.0.1'
ip_port = 10000
max_connections = 5
txt = 'utf-8'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Code
s.bind((ip_address, ip_port))
s.listen(max_connections)
while True:
clientsocket, address = s.accept()
print("{} connected!", address)
clientsocket.send(b"quit")
在客户端,recv在套接字连接之前被调用
client.py
# Imports
import socket
# Variables
ip_address = '127.0.0.1'
ip_port = 10000
txt = 'utf-8'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Code
"""Connect to the server"""
s.connect((ip_address, ip_port))
while True:
msg = s.recv(1024)
var = msg.decode(txt)
if var == "quit":
break
新的IP地址可以工作,但如果它是通过网络的呢?服务器可能在127.0.0.1进行侦听,客户端通过网络连接到服务器IP。代码在您的机器中工作了吗?我通常必须将ip_地址设置为
0.0.0
,以列出网络上的流量。别忘了防火墙、路由器和其他东西哦,是的,这是一个真正的应用程序所必须的。很抱歉反应太晚,但它工作正常。再次感谢:)
# Imports
import socket
# Variables
ip_address = '127.0.0.1'
ip_port = 10000
txt = 'utf-8'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Code
"""Connect to the server"""
s.connect((ip_address, ip_port))
while True:
msg = s.recv(1024)
var = msg.decode(txt)
if var == "quit":
break