UDP Sever

 avatar
unknown
python
3 months ago
1.5 kB
4
Indexable
import socket
from datetime import datetime

# Konfigurasi server
server_ip = "127.0.0.1"
server_port = 12345
buffer_size = 1024

# Buat socket UDP
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind((server_ip, server_port))
print(f"[SERVER] Menunggu data di {server_ip}:{server_port} ...")

while True:
    # Terima data dari client
    data, client_address = server_socket.recvfrom(buffer_size)
    data = data.decode()
    print(f"[SERVER] Menerima dari {client_address}: '{data}'")

    # 1. Inversi Case
    inversed = ''.join([char.lower() if char.isupper() else char.upper() for char in data])
    print(f"[SERVER] Inversi case: '{inversed}'")

    # 2. Hitung jumlah karakter setelah inversi case
    char_count = len(inversed)
    print(f"[SERVER] Jumlah karakter setelah inversi: {char_count}")

    # 3. Hapus spasi di awal dan akhir
    trimmed = inversed.strip()
    if trimmed == inversed:
        trim_msg = "Tidak ada spasi yang dihapus."
    else:
        trim_msg = "Spasi kosong di awal/akhir telah dihapus."
    print(f"[SERVER] {trim_msg}")

    # 4. Tambahkan timestamp
    timestamp = datetime.now().strftime("[%Y-%m-%d %H:%M:%S]")

    # 5. Buat pesan akhir
    final_result = f"{trimmed} | {char_count} karakter | {trim_msg} | {timestamp} | Data telah diproses"

    # Kirim kembali ke client
    server_socket.sendto(final_result.encode(), client_address)
    print(f"[SERVER] Mengirim ke {client_address}: {final_result}")
Editor is loading...
Leave a Comment