我目前正在使用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。在
在服务器上,
HOST
应该是0.0.0.0
或服务器的自己的IP地址。服务器需要将其侦听端口绑定到自己的接口。客户端连接到服务器。在你的客户端程序不会检查错误。所以,如果它不能连接到服务器,事情就会出错。在
相关问题 更多 >
编程相关推荐