Saya mencoba membuat aplikasi sederhana dengan Python dengan soket, tetapi klien hanya menerima pesan "Tes" yang dikirim dari server jika mereka berada di LAN. Saya mencoba menjalankan klien (server berjalan di PC saya) dari laptop saya dan dari PC saya. Dalam kedua kasus saya menerima pesan "Tes", tetapi ketika seorang teman mencoba untuk terhubung, dia tidak menerima pesan tersebut.

Ini server.py saya:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 7908))
s.listen(5)

while True:
    clientsocket, address = s.accept()
    print(f"Connection from {address} established")
    clientsocket.send(bytes("Test", "utf-8"))

Dan inilah client.py saya:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("my_public_ip_address", 7908))

print(s.recv(8).decode("utf-8"))

Saya mengkompilasi client.py dengan pyinstaller sebelum mengirimnya, sehingga skrip dapat berjalan tanpa Python diinstal pada mesin (saya bahkan tidak memiliki Python di laptop saya)

Terima kasih telah meluangkan waktu untuk membaca dan awnsering ini :) (Maaf jika bahasa Inggris saya buruk, saya orang Prancis)

0
JanotLeLapin 11 April 2020, 23:43

1 menjawab

Jawaban Terbaik

Saya kira teman Anda berada di luar LAN Anda: jika demikian, Anda harus membuka/portforward port 7908 pada router ke server. Buka port 7908 pada firewall PC server.

Skrip Anda dengan cara ini seharusnya berfungsi.

0
gekigek99 11 April 2020, 20:56