Doradeniz
Centipat
- Katılım
- 28 Temmuz 2019
- Mesajlar
- 7
Benim amacım python programlama dilini kullanarak evdeki eski bir bilgisayarı basit hobi amaçlı bir servera dönüştürmek. Kendi local ağımdaki (aynı modeme bağlı ) bilgisaylar ile python socket programlamayı kullanarak bilgisayarlar arasında veri gönderip alabiliyorum(not: Sever bilgisayarımda antivirus programı yok ayrıca haberleştirme yapacağım portu Windows Defender güvenlik duvarından açıyorum). Ama iş farklı ağdaki bilgisayarları haberleştirmeye gelince problem yaşıyorum. Farklı ağdaki bilgisayarların benim server a bağlanabilmesi için modem arayüzünden NAT (network addres translation) yapmam gerektiğini öğrendim. Maalesef DMZ yapamıyorum çümkü aynı modeme birden fazla bilgisayar bağlı. Aşığıda yaptığım NAT ayarının fotoğrafı var. Bu arada TCP ile haberleşme yapıyorum.
Analadığım kadarıyla bilgisayar(client) benim public IP adresimden 50007 numaralı servis portuma ulaşmak isterse. Modem bu bağlantıyı benim server (192.168.1.107 local IP'li) bilgisayarımın 50007 numaralı dahili portuna gönderiyor. Umarım tüm bunları doğru anlamışımdır yanlışım varsa düzeltin lütfen. Şimdi buraya kadar her şey tamam. Test aşamasına geçince doğru çalışmıyor.
test aşaması:
Başka bir ağdaki (mobil veriyi kullanıyorum Turkcell) bilgisayardan(client) benim public IP adresmim 50007 numaralı portuna bağlanmaya çalıştığım zaman timeout hatası alıyorum. İlk önce pythonda yazdığım basit bir server client ile denedim olamadı sonra HERCULES_3-2-8 isimli programı denedim.
HERCULES_3-2-8 isimli program linki :Hercules SETUP utility | HW-group.com
Not: Yazdığım python kodu ve HERCULES_3-2-8 isimli program kendi ağımdaki bilgisayarlar ile iletişim kurarken sorunsuz çalışıyor.
Hercules isimli programı bilgisayarda (client) çalıştırdım. Server tarafı 50007 numaralı portu dinliyor fakat client tarafı timeout hatası veriyor.
Python kodlarımı çalıştırdığımda da client tarafında karşı bilgisayarın cevap vermesi çok uzun sürdü diyor ve timeout hatası veriyor. Client bilgisayarında antivirus programını kapatıp denedim bir işe yaramadı.
python kodlarım
---server. Py---
<code>
İmport socket.
İmport OS.
İmport time.
S = socket. Socket(socket. AF_INET, socket. SOCK_STREAM)
S. Bind(("",50007))
S. Listen(5)
While true:
Print("dinleniyor")
d,adres=s.accept()
Print(adres,"ten bağlanıldı")
D. Send(bytes("mesaj","utf-8"))
<code>
----client. Py----
<code>
İmport socket.
İmport OS.
İmport time.
S = socket. Socket(socket. AF_INET, socket. SOCK_STREAM)
s.connect(("88.230.55.xxx",50007))
Msg=s. Recv(100)
print(msg.decode("utf-8"))
<code>
Analadığım kadarıyla bilgisayar(client) benim public IP adresimden 50007 numaralı servis portuma ulaşmak isterse. Modem bu bağlantıyı benim server (192.168.1.107 local IP'li) bilgisayarımın 50007 numaralı dahili portuna gönderiyor. Umarım tüm bunları doğru anlamışımdır yanlışım varsa düzeltin lütfen. Şimdi buraya kadar her şey tamam. Test aşamasına geçince doğru çalışmıyor.
test aşaması:
Başka bir ağdaki (mobil veriyi kullanıyorum Turkcell) bilgisayardan(client) benim public IP adresmim 50007 numaralı portuna bağlanmaya çalıştığım zaman timeout hatası alıyorum. İlk önce pythonda yazdığım basit bir server client ile denedim olamadı sonra HERCULES_3-2-8 isimli programı denedim.
HERCULES_3-2-8 isimli program linki :Hercules SETUP utility | HW-group.com
Not: Yazdığım python kodu ve HERCULES_3-2-8 isimli program kendi ağımdaki bilgisayarlar ile iletişim kurarken sorunsuz çalışıyor.
Hercules isimli programı bilgisayarda (client) çalıştırdım. Server tarafı 50007 numaralı portu dinliyor fakat client tarafı timeout hatası veriyor.
Python kodlarımı çalıştırdığımda da client tarafında karşı bilgisayarın cevap vermesi çok uzun sürdü diyor ve timeout hatası veriyor. Client bilgisayarında antivirus programını kapatıp denedim bir işe yaramadı.
python kodlarım
---server. Py---
<code>
İmport socket.
İmport OS.
İmport time.
S = socket. Socket(socket. AF_INET, socket. SOCK_STREAM)
S. Bind(("",50007))
S. Listen(5)
While true:
Print("dinleniyor")
d,adres=s.accept()
Print(adres,"ten bağlanıldı")
D. Send(bytes("mesaj","utf-8"))
<code>
----client. Py----
<code>
İmport socket.
İmport OS.
İmport time.
S = socket. Socket(socket. AF_INET, socket. SOCK_STREAM)
s.connect(("88.230.55.xxx",50007))
Msg=s. Recv(100)
print(msg.decode("utf-8"))
<code>
Son düzenleme: