Python Socket Modülü
-
Socket Nedir ?
Socket, iki cihaz veya server arasındaki iletişimi sağlayan uç bölgedir.
Ağımızda veri alışverişi yapmak için socket kullanırız. Socket'ler, istemcimiz ve sunucumuz
tarafında kullanılabilir ve iki bileşen arasında veri almak için kullanırız.
Socket Türleri
Stream Sockets : Bağlantı tabanlı iletişim sağlar veriler sırası ile alınır.
Datagram Sockets : Bağlantısız iletişimi sağlar ve sıralı değildir.

Ana yapı socket fonksiyonları ;
-
Socket Nedir ?
Socket, iki cihaz veya server arasındaki iletişimi sağlayan uç bölgedir.
Ağımızda veri alışverişi yapmak için socket kullanırız. Socket'ler, istemcimiz ve sunucumuz
tarafında kullanılabilir ve iki bileşen arasında veri almak için kullanırız.
Socket Türleri
Stream Sockets : Bağlantı tabanlı iletişim sağlar veriler sırası ile alınır.
Datagram Sockets : Bağlantısız iletişimi sağlar ve sıralı değildir.

Ana yapı socket fonksiyonları ;
Python:
socket(): 'Yeni bir socket nesnesi oluşturur.
bind(): 'Socketi bir IP adresi ve port numarasına bağlar.
listen(): 'Sunucu socketinde bağlantılar dinlenir.
accept(): 'Bağlantılar kabul edilir.
connect(): 'İstemciden sunucuya bağlantı kurulur.
send(): 'Verileri gönderir.
recv(): 'Verileri alır.
close(): 'Socketimizi kapatır.
Python:
import socket
# Socketimizi bu şekilde oluşturuyoruz.
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# İP Adresimizi ve portumuzu bu şekilde bağlıyoruz.
server_socket.bind(('örnekhost', örnekport6530))
# Bağlantıları bu şekilde dinliyoruz
server_socket.listen(5)
print("Sunucu dinleniyor")
while True:
# Gelen bağlantıları kabul ediyoruz.
client_socket, address = server_socket.accept()
print(f"Bağlantımız sağlandı: {address}")
# İstemcimizden verileri alıyoruz.
data = client_socket.recv(1024).decode()
print(f"Alınan verilerimiz: {data}")
# Yanıtımızı bu şekilde gönderiyoruz.
client_socket.send("Örnek Mesaj ".encode())
# Bağlantıyı bu kod ile kapatıyoruz.
client_socket.close()
Python:
import socket
# İstemci soketimizi oluşturuyoruz.
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Sunucumuza bağlanıyoruz
client_socket.connect(('örnekhost', örnekport6530))
# Verilerimizi gönderelim
client_socket.send("Örnek , Nasılsın".encode())
# Sunucudan yanıt almak için bu girdiyi kullanıyoruz
response = client_socket.recv(1024).decode()
print(f"Gelen yanıt: {response}")
# Bağlantımızı kapatıyoruz.
client_socket.close()
Python:
import socket
import threading
def handle_client(client_socket):
while True:
try:
data = client_socket.recv(1024).decode()
if not data:
break
print(f"Aldığımız verilerimiz: {data}")
client_socket.send("Verimiz alındı".encode())
except:
break
client_socket.close()
# Sunucu soketimizi oluşturuyoruz.
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('örnekhost', örnekport6530))
server_socket.listen(5)
print("Sunucuyu dinliyoruz.")
while True:
client_socket, address = server_socket.accept()
print(f"Bağlantımız sağlandı: {address}")
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
Python:
import socket
def client_task():
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('örnekhost', örnek6530))
client_socket.send("Göndereceğimiz mesaj girdisi".encode())
response = client_socket.recv(1024).decode()
print(f"Gelen yanıt: {response}")
client_socket.close()
# Birden fazla işlemci başlatmak için bu girdiyi oluşturuyoruz.
for _ in range(5):
client_task()
Python:
import socket
import threading
clients = []
def broadcast(message, current_client):
for client in clients:
if client != current_client:
client.send(message)
def handle_client(client_socket):
while True:
try:
message = client_socket.recv(1024)
broadcast(message, client_socket)
except:
clients.remove(client_socket)
client_socket.close()
break
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('örnekhost', örnekport6530))
server_socket.listen(5)
print("Chat sunucusu dinleniyor")
while True:
client_socket, address = server_socket.accept()
clients.append(client_socket)
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
Python:
import socket
import threading
def receive_messages(client_socket):
while True:
try:
message = client_socket.recv(1024).decode()
print(message)
except:
client_socket.close()
break
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('örnekhost', örnekport6350))
receive_thread = threading.Thread(target=receive_messages, args=(client_socket,))
receive_thread.start()
while True:
message = input()
client_socket.send(message.encode())
Python:
import socket
def send_file(filename, client_socket):
with open(filename, 'rb') as file:
client_socket.sendfile(file)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('örnekhost', örnekport6350))
server_socket.listen(5)
print("Dosya sunucumuz dinleniyor")
while True:
client_socket, address = server_socket.accept()
print(f"Bağlantımız sağlandı: {address}")
send_file('örnek.txt', client_socket)
client_socket.close()
Python:
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('örnekhost', örnekport6350))
with open('örnekdosya.txt', 'wb') as file:
while True:
data = client_socket.recv(1024)
if not data:
break
file.write(data)
print("Dosyamız alındı")
client_socket.close()








