Labot Python Socket kļūdu 48



Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai

Socket Error 48 ir pitona kļūda, kas tiek aktivizēta, kad process mēģina piesaistīties portam, kas jau tiek izmantots.



Serveri



Kas izraisa “socket.error: [Errno 48] Adrese jau tiek lietota” kļūdu?

Pēc īsa pētījuma mēs atradām cēloņus:



  • Process, kas saistīts ar ostu: Ikreiz, kad serveris tiek izveidots process, saziņai ar internetu tas izmanto portu. Osta ir kā saimnieks, kas vienlaikus var izklaidēt vienu viesi. Tomēr, ja nav norādīts ports, serveris to vienkārši izveido noklusējuma portā. Nākamreiz, kad izveidojat procesu, ir jānorāda ports, jo noklusējuma ports jau tiek izmantots.

1. risinājums: porta numura norādīšana

Kļūda galvenokārt tiek aktivizēta, kad persona mēģina saistīt noteiktu procesu ar noklusējuma portu un noklusējuma ports jau ir saistīts ar citu procesu. Tāpēc šajā solī mēs norādīsim portu, kurā process ir jāierobežo.

  1. Iespējams, ka procesa izveidošanai izmantojat šo komandu.
    $ python -m SimpleHTTPServer
  2. Tā vietā izmantojiet šo komandu, lai izveidotu procesu.
    $ python -m SimpleHTTPServer (porta numurs)
  3. Pagaidiet, kamēr process tiks izveidots, un pārbaudiet, vai problēma joprojām pastāv.

2. risinājums: ostas atbrīvošana

Ja osta jau izmanto cits process, jaunais process šajā portā nevarēs darboties. Tāpēc šajā solī mēs atbrīvosim portu, pārtraucot iepriekšējo procesu un pēc tam palaižot jauno. Par to:

  1. Izmantojiet šo komandu, lai uzskaitītu vairākus procesus, izmantojot noteiktu portu.
    $ ps -fA | grep pitons
  2. Komandas arguments izskatīsies apmēram šādi.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Procesa kods, ko mēs izmantosim, lai nogalinātu, ir “88234”.
  4. Izmantojiet šo komandu, lai nogalinātu procesu.
    nogalināt 88234

    Varat arī izmantot šādu komandu, lai to nogalinātu.



    sudo kill -9 PID
  5. Tagad jūs varat saistīt procesu ar šo portu, izmantojot šādu komandu.
    $ python -m SimpleHTTPServer (porta numurs)
  6. Tagad process tiks izveidots.

3. risinājums: Raspberry Pi restartēšana (tikai Raspberry Pi)

Jūs varat atbrīvoties no šīs kļūdas Aveņu Pi restartējot Raspberry Pi vai nogalinot termināla apvalku. Raspberry Pi dažreiz nespēj automātiski nogalināt procesus un izraisa šo kļūdu iepriekšējo procesu dēļ, kas jau darbojas ostās.

1 minūte lasīta