
Yazılımlarda port dinlemeye ve port’a veri gönderme ihtiyacı hissedebilirsiniz. Bunun için aşağıda python kod parçacıklarını görebilirsiniz.
İlk önce dinlemek istediğiniz portu için aşağıdaki kod 1923 portunu dinliyor.
portDinle.py
import socket # Dinlemek istediğimiz port numarasını yazın PORT = 1923 # TCP protokolü ile bir soket oluştur server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Soketi belirtilen porta bağlayın server_socket.bind(('localhost', PORT)) # Bağlantıyı dinlemeye başlayın server_socket.listen(1) print(f"Dinlenen port: {PORT}") while True: # Bağlantıyı kabul et. client_socket, client_address = server_socket.accept() print(f"Bağlantı alındı: {client_address}") # Bağlantıdan gelen veriyi oku. data = client_socket.recv(1024) print(f"Gelen veri: {data.decode('utf-8')}") # İsteğe Bağlı: Veri geldiyse bir yanıt gönder. Client bilsin verinin geldiğini. response = "Veri alındı. Teşekkür ederim!" client_socket.sendall(response.encode('utf-8')) # Bağlantıyı kapat. client_socket.close()
Daha sonra port’a veri gönderiyoruz.
portGonder.py:
import socket import sys def send_data_to_port(data, port=1923): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: try: s.connect(('localhost', port)) s.sendall(data.encode('utf-8')) response = s.recv(1024) print("Server response:", response.decode('utf-8')) except Exception as e: print("Hata:", e) def main(): if len(sys.argv) > 1: try: port = int(sys.argv[1]) except ValueError: print("Geçersiz port numarası. Varsayılan olarak 1923 kullanılıyor.") port = 1923 else: port = 1923 while True: user_input = input("Veri gönder (çıkmak için 'exit' yazın): ") if user_input.lower() == 'exit': sys.exit() send_data_to_port(user_input, port) # Kullanıcının yeni veri girmesini beklemek için bu satırı çıkardık. # new_data = input("Tekrar gönderilecek veri (çıkmak için 'exit' yazın): ") # Eğer kullanıcı "exit" yazarsa, döngüden çıkılır ve program sona erer. if __name__ == "__main__": main()
Bu da kod’un çalıştırılmış hali.
Kodu: “python portGonder.py 1924″ şeklinde yazarak başka port’a veri gönderebilirsiniz.
Windows pc’de bir portun kullanılıp kullanılmadığını merak ediyorsanız. Aşağıdaki komut istemi ile çıktı alabilirsiniz.
netstat -ano | find "1923"
#python #port #dinle #tcp/ip #listen #post #send #data
Bu daha çok geliştirilebilir.
- Port’dan gelen veriler bir database’e veya bir txt dosyasına kayıt edilebilir.
- Dinlenen port parametrik yapılabilinebilir.
- Loglama yapabilirsiniz.