Computer >> Máy Tính >  >> Lập trình >> Python

Lập trình socket trong Python

Trong kênh liên lạc hai chiều, ổ cắm là hai điểm cuối. Các ổ cắm có thể giao tiếp giữa quá trình trên cùng một máy hoặc trên các lục địa khác nhau.

Các ổ cắm được thực hiện bởi các loại kênh-TCP, UDP khác nhau.

Để tạo Socket, chúng ta cần mô-đun socket và hàm socket.socket ().

Cú pháp

my_socket = socket.socket (socket_family, socket_type, protocol=0)

Các phương pháp khác nhau trong Server Socket

my_socket.bind()

Phương thức này được sử dụng để liên kết địa chỉ (tên máy chủ, cặp số cổng) với ổ cắm.

my_socket.listen()

Phương thức này được sử dụng để thiết lập và khởi động trình nghe TCP.

my_socket.accept()

Phương thức này được sử dụng để chấp nhận kết nối máy khách TCP, đợi cho đến khi kết nối đến (chặn).

Các phương pháp khác nhau trong Client Socket

my_socket.connect()

Phương pháp này chủ động khởi tạo kết nối máy chủ TCP.

Phương thức Socket Chung

my_socket.recv()

Phương thức này nhận thông báo TCP

my_socket.send()

Phương thức này truyền thông điệp TCP

my_socket.recvfrom()

Phương thức này nhận thông báo UDP

my_socket.sendto()

Phương thức này truyền thông báo UDP

my_socket.close()

Phương thức này đóng socket

my_socket.gethostname()

Phương thức này trả về tên máy chủ.

Ổ cắm máy chủ

Ví dụ

import socket
my_socket = socket.socket()      # Create a socket object
my_host = socket.gethostname()
my_port = 00000# Store a port for your service.
my_socket.bind((my_host, my_port))
my_socket.listen(5)      # Now wait for client connection.
while True:
   cl, myaddr = my_socket.accept()     # Establish connection with client.
   print ('Got connection from', myaddr)
   cl.send('Thank you for connecting')
   cl.close()     # Close the connection

Ổ cắm máy khách

Ví dụ

import socket      # Import socket module
my_socket = socket.socket()      # Create a socket object
my_host = socket.gethostname()     # Get local machine name
my_port = 00000# Store a port for your service.
my_socket.connect((my_host, my_port))
print (my_socket.recv(1024))
my_socket.close