Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单Python套接字服务器不在macOS上运行_Python_Python 3.x_Sockets_Networking - Fatal编程技术网

简单Python套接字服务器不在macOS上运行

简单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

我创建了一个小型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_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