[英]Python socket getting the error “connection refused error 111”
我在連接套接字時遇到問題。 我寫了一段代碼,其目的是從客戶端獲取硬盤的序列號並將其發送到服務器。 如果我在本地機器上運行服務器和客戶端代碼,它工作正常。 當我嘗試在真實服務器上運行服務器並在真實客戶端(2 台不同的機器)上運行客戶端時,出現錯誤:“連接被拒絕錯誤 111”
這是我的客戶代碼:
#!/usr/bin/python3
import os, socket
from time import sleep
def serialNumber():
"""Find the product serial number"""
serialtest = "smartctl -a -i /dev/sda2 > /root/Desktop/serialTest.txt"
grepp = "grep 'Serial Number:' /root/Desktop/serialTest.txt > /root/Desktop/NewserialTest.txt"
sedd = "sed -i 's/Serial Number: //g' /root/Desktop/NewserialTest.txt"
os.system(serialtest)
os.system(grepp)
os.system(sedd)
try:
with open (r"/root/Desktop/NewserialTest.txt","r") as data:
global newserial
newserial = data.readline().strip()
except:
return "File not found!"
try:
os.rename(r'/root/Desktop/NewserialTest.txt',rf'/root/Desktop/{newserial}.txt')
os.remove(r"/root/Desktop/serialTest.txt")
except:
return "File not found!"
return ""
print(serialNumber())
try:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip = socket.gethostname()
port = 5555
s.connect((ip,port))
except socket.error as e:
print(f"UNABLE to connect! you got error:\n{e}.")
exit(-1)
try:
with open(rf'/root/Desktop/{newserial}.txt', "rb") as fd:
toSend = fd.read()
s.send(toSend)
except socket.error as e:
print(f"you got error:\n{e}.")
這是我的服務器代碼:
#!/usr/bin/python3
import os, socket
from _thread import *
server_socket = socket.socket()
host = socket.gethostname()
port = 5555
try:
server_socket.bind((host, port))
except socket.error as e:
print(f"You have a error:\n{str(e)}")
print("\nWaiting for connection....\n")
server_socket.listen(100)
while True:
# Recive the serial number from the client
sc, address = server_socket.accept()
print(address)
f = open(r'/root/Desktop/LAB_Test/NewserialTest.txt' ,'wb') #open in binary
while (True):
l = sc.recv(1024)
f.write(l)
if not l:
break
f.close()
sc.close()
try:
with open (r'/root/Desktop/LAB_Test/NewserialTest.txt',"r") as data:
global newserial
newserial = data.readline().strip()
except:
print("File not found!")
os.rename(r'/root/Desktop/LAB_Test/NewserialTest.txt',rf'/root/Desktop/LAB_Test/{newserial}.txt')
可能是什么問題呢?
我將綁定更改為 0.0.0.0,現在它可以工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.