无法在Centos中使用Python正确运行套接字程序

2024-04-27 04:55:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用Python处理套接字。在

作为一个初学者,我首先尝试复制这个(17.2.2. Example) tutorial中给出的示例

我把客户机和服务器脚本放在两台不同的机器上(当然)

现在,我想试试看,但我有点迷路了。在

我在考虑连续运行服务器程序,这样它将继续接收客户端程序发送的数据。但是,当我试图运行服务器程序时,它给了我这个错误

socket.error: (99, 'Cannot assign requested address')

当我试着运行客户机程序时,它没有给我错误,但是,它正在打印随机数据,这与我期望的不同,因为我发送了字符串“Hello World”,所以我希望它会接收并打印“Hello World”

下面是服务器程序

# Echo server program
import socket

HOST = '192.168.104.112'                 # Symbolic name meaning all available interfaces
PORT = 50007              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.sendall(data)
conn.close()

下面这个是客户端程序

^{pr2}$

假设运行服务器程序的机器的IP是:192.168.104.111

而客户端程序是:192.168.104.112

我不太确定从哪里可以得到端口号,所以我只使用了终端rpyc中显示的端口。我怎样才能得到正确的端口号?在

我知道我在这里犯了很多错误。我只是不知道哪个部分。你能告诉我我所犯的错误以及如何改正吗?我如何运行这些程序?在

顺便说一句,我用的是Centos。在


Tags: 数据程序机器hosthelloworlddata客户机
1条回答
网友
1楼 · 发布于 2024-04-27 04:55:21

在服务器上,HOST应该是0.0.0.0或服务器的自己的IP地址。服务器需要将其侦听端口绑定到自己的接口。客户端连接到服务器。在

你的客户端程序不会检查错误。所以,如果它不能连接到服务器,事情就会出错。在

相关问题 更多 >