מבוא לתכנות רשת Python
תכנות רשת כולל כתיבת תוכנה המתקשרת דרך רשת. Python, עם מערך הספריות העשיר שלו, עושה את זה פשוט יחסית לפתח יישומי רשת. מאמר זה מספק מבוא לתכנות רשת Python, מכסה מושגים בסיסיים ומציע דוגמאות כדי להתחיל.
הגדרת הסביבה
לפני הצלילה לתכנות רשת, ודא שהתקנת את Python. תזדקק גם לספריית `socket`, הכלולה בספרייה הסטנדרטית של Python, כך שאין צורך בהתקנה נוספת.
הבנת שקעים
שקע הוא נקודת קצה לשליחה או קבלה של נתונים ברשת. ספריית `socket` של Python מספקת ממשק לתקשורת רשת באמצעות שקעים.
יצירת שרת TCP פשוט
הנה דוגמה לשרת TCP בסיסי שמאזין לחיבורים נכנסים ומטפל בהם:
import socket
def start_server(host='localhost', port=12345):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(1)
print(f'Server listening on {host}:{port}')
while True:
client_socket, address = server_socket.accept()
print(f'Connection from {address}')
client_socket.sendall(b'Hello, client!')
client_socket.close()
if __name__ == "__main__":
start_server()
יצירת לקוח TCP פשוט
הנה דוגמה ללקוח שמתחבר לשרת ומקבל הודעה:
import socket
def connect_to_server(host='localhost', port=12345):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
message = client_socket.recv(1024)
print('Received:', message.decode())
client_socket.close()
if __name__ == "__main__":
connect_to_server()
הבנת UDP
UDP (User Datagram Protocol) הוא פרוטוקול נוסף המשמש לתקשורת רשת. בניגוד ל-TCP, UDP אינה מבטיחה משלוח, הזמנה או בדיקת שגיאות. הנה דוגמה בסיסית לתקשורת UDP:
שרת UDP
import socket
def start_udp_server(host='localhost', port=12345):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind((host, port))
print(f'UDP server listening on {host}:{port}')
while True:
message, address = server_socket.recvfrom(1024)
print(f'Received message from {address}: {message.decode()}')
server_socket.sendto(b'Hello, UDP client!', address)
if __name__ == "__main__":
start_udp_server()
לקוח UDP
import socket
def send_udp_message(host='localhost', port=12345):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client_socket.sendto(b'Hello, UDP server!', (host, port))
message, _ = client_socket.recvfrom(1024)
print('Received:', message.decode())
client_socket.close()
if __name__ == "__main__":
send_udp_message()
מַסְקָנָה
ספריית ה-socket של Python מספקת בסיס חזק לתכנות רשת, ומאפשרת לך ליצור יישומי TCP ו-UDP כאחד. על ידי הבנת פעולות ופרוטוקולים בסיסיים של שקעים, אתה יכול לבנות מגוון של יישומים ושירותים ברשת. המשך לחקור את יכולות הרשת של Python כדי לפתח פתרונות רשת מתוחכמים ואמינים יותר.