
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.