🌐 network - Ağ Programlama
TCP, UDP, Socket, DNS, TLS/SSL
84
Fonksiyon
1,043
Satır
32 KB
Boyut
🚀 Hızlı Başlangıç
içe_aktar network
// TCP Client
değişken socket = network.tcp_connect("example.com", 80)
network.send(socket, "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
değişken yanıt = network.receive(socket, 1024)
yazdır(yanıt)
network.close(socket)
// TCP Server
değişken sunucu = network.tcp_listen("127.0.0.1", 8080)
yazdır("Server listening on 127.0.0.1:8080")
döngü yap
değişken client = network.accept(sunucu)
değişken mesaj = network.receive(client, 1024)
network.send(client, "Echo: " + mesaj)
network.close(client)
son
// UDP
değişken udp = network.udp_socket()
network.udp_send_to(udp, "Merhaba", "127.0.0.1", 9000)
değişken (data, addr, port) = network.udp_receive_from(udp, 1024)
📚 Protokoller
- TCP: Reliable, connection-oriented streaming
- UDP: Unreliable, connectionless datagram
- TLS/SSL: Encrypted TCP connections
- DNS: Domain name resolution
- WebSocket: Full-duplex communication
💡 Örnekler
Multi-threaded TCP Server
içe_aktar network, thread
fonksiyon handle_client(client: Socket) yap
dene yap
döngü yap
değişken data = network.receive(client, 1024)
eğer data.uzunluk() == 0 ise yap
kır // Client disconnected
son
yazdır("Alındı: " + data)
network.send(client, "Echo: " + data)
son
son yakala hata yap
yazdır("Client hatası: " + hata.mesaj())
son sonunda yap
network.close(client)
son
son
fonksiyon sunucu_başlat() yap
değişken sunucu = network.tcp_listen("0.0.0.0", 8080)
yazdır("Server running on port 8080")
döngü yap
değişken client = network.accept(sunucu)
değişken client_addr = network.peer_addr(client)
yazdır("Yeni bağlantı: " + client_addr)
// Her client için yeni thread
thread.spawn(fonksiyon() yap
handle_client(client)
son)
son
son
sunucu_başlat()
HTTP Client with TLS
içe_aktar network, crypto
fonksiyon https_get(host: yazı, path: yazı) -> Sonuç yap
// DNS çözümleme
değişken ip = network.dns_resolve(host)
// TLS socket
değişken socket = network.tcp_connect(ip, 443)
değişken tls = network.tls_wrap(socket, host)
// HTTP request
değişken request = "GET " + path + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n"
network.tls_send(tls, request)
// Response okuma
değişken yanıt = ""
döngü yap
değişken chunk = network.tls_receive(tls, 4096)
eğer chunk.uzunluk() == 0 ise yap
kır
son
yanıt = yanıt + chunk
son
network.tls_close(tls)
dön Tamam(yanıt)
son
değişken sonuç = https_get("api.github.com", "/users/arslantasm")
eğer sonuç.tamam_mı() ise yap
yazdır(sonuç.çıkar())
son