簡體   English   中英

Python 套接字收到錯誤“連接被拒絕錯誤 111”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM