jak wywolać funkcje przez socket [pytanie,python]

jak wywolać funkcje przez socket [pytanie,python]
Miłosz Sobecki
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:4
0

Witam uczę się programować w python i ćwicze sobie biblioteke socket i mam problem bo nie wiem jak zrobić żeby było tak

klient rozkazuje za pomocą funkcji serwerowi aby on wyłączył ten komputer na którym się znajduje serwer czyli jak przesłać funkcje z klienta do serwera oraz wywołać tą funkcje na serwerze

więc jeśli ktoś wie to prosiłbym o pomoc

edytowany 2x, ostatnio: Miłosz Sobecki
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
1

wysyłasz do socketa string reboot i oprogramowujesz na serwerze ze jak przyjdzie reboot to robie restart

Miłosz Sobecki
byś mógł pokazać kod?
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

Po stronie klienta:

Kopiuj
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall("reboot")

Po stronie serwera:

Kopiuj
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((host, port))
    s.listen(1)
    conn, addr = s.accept()
    with conn:
        data = conn.recv(1024)
        if data == 'reboot':
            os.system('shutdown -h now')

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Miłosz Sobecki
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:4
0

przepraszam ze sie pytam ale wyskakuje taki bląd " s.sendall("reboot")
TypeError: a bytes-like object is required, not 'str' " co zle zrobiłem?

edytowany 5x, ostatnio: Miłosz Sobecki
Shalom
Wyłączyłeś myślenie i bezmyślnie i bezrefleksyjnie kopiujesz losowe kawałki kodu, bez próby ich zrozumienia.
ON
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 2 lata
0

Z tego co sie orientuje to wszystkie dane odczytane są zwracane jako byte sobiekt, a nie str

TS
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:394
1

Obstawiam że powinno być: s.sendall(b"reboot")

ON
b - powinno pomoc

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.