Socket.connect python

Python cung cấp hai cấp độ truy cập vào các dịch vụ mạng. Ở cấp độ thấp, bạn có thể truy cập hỗ trợ ổ cắm cơ bản trong hệ điều hành cơ bản, cho phép bạn triển khai máy khách và máy chủ cho cả giao thức hướng kết nối và không kết nối

Python cũng có các thư viện cung cấp quyền truy cập cấp cao hơn vào các giao thức mạng cấp ứng dụng cụ thể, chẳng hạn như FTP, HTTP, v.v.

Chương này cung cấp cho bạn hiểu biết về khái niệm nổi tiếng nhất trong Mạng - Lập trình Socket

Ổ cắm là gì?

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

Ổ cắm có thể được triển khai trên một số loại kênh khác nhau. Ổ cắm tên miền Unix, TCP, UDP, v.v. Thư viện ổ cắm cung cấp các lớp cụ thể để xử lý các phương tiện vận chuyển chung cũng như giao diện chung để xử lý phần còn lại

Ổ cắm có từ vựng riêng của chúng -

Sr. Không. Thuật ngữ và Mô tả

Lãnh địa

Họ các giao thức được sử dụng làm cơ chế vận chuyển. Các giá trị này là các hằng số như AF_INET, PF_INET, PF_UNIX, PF_X25, v.v.

2

loại

Loại giao tiếp giữa hai điểm cuối, điển hình là SOCK_STREAM cho giao thức hướng kết nối và SOCK_DGRAM cho giao thức không kết nối

3

giao thức

Thông thường bằng 0, điều này có thể được sử dụng để xác định một biến thể của giao thức trong một miền và loại

4

tên máy chủ

Mã định danh của giao diện mạng -

  • Một chuỗi, có thể là tên máy chủ, địa chỉ dấu chấm hoặc địa chỉ IPV6 trong ký hiệu dấu hai chấm (và có thể là dấu chấm)

  • Chuỗi "", chỉ định địa chỉ INADDR_BROADCAST

  • Một chuỗi có độ dài bằng 0, chỉ định INADDR_ANY hoặc

  • Một số nguyên, được hiểu là địa chỉ nhị phân theo thứ tự byte máy chủ

5

Hải cảng

Mỗi máy chủ lắng nghe máy khách gọi trên một hoặc nhiều cổng. Cổng có thể là số cổng Fixnum, chuỗi chứa số cổng hoặc tên của dịch vụ

Mô-đun ổ cắm

Để tạo một ổ cắm, bạn phải sử dụng ổ cắm. socket() có sẵn trong mô-đun socket, có cú pháp chung -

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

Dưới đây là mô tả về các tham số -

  • socket_family − Đây là AF_UNIX hoặc AF_INET, như đã giải thích trước đó

  • socket_type − Đây là SOCK_STREAM hoặc SOCK_DGRAM

  • giao thức - Điều này thường bị bỏ qua, mặc định là 0

Khi bạn có đối tượng ổ cắm, thì bạn có thể sử dụng các chức năng cần thiết để tạo chương trình máy khách hoặc máy chủ của mình. Sau đây là danh sách các chức năng cần thiết –

Phương pháp ổ cắm máy chủ

Sr. Không. Phương pháp và Mô tả

s. trói buộc()

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

2

s. nghe()

Phương pháp này thiết lập và khởi động trình nghe TCP

3

s. Chấp nhận()

Điều này chấp nhận kết nối máy khách TCP một cách thụ động, đợi cho đến khi kết nối đến (chặn)

Phương pháp ổ cắm máy khách

Sr. Không. Phương pháp và Mô tả

s. liên kết()

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

Phương pháp ổ cắm chung

Sr. Không. Phương pháp và Mô tả

s. recv()

Phương thức này nhận tin nhắn TCP

2

s. gửi()

Phương pháp này truyền tin nhắn TCP

3

s. recvfrom()

Phương pháp này nhận tin nhắn UDP

4

s. gửi đến()

Phương pháp này truyền tin nhắn UDP

5

s. Thoát()

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

6

ổ cắm. tên máy chủ ()

Trả về tên máy chủ

Một máy chủ đơn giản

Để viết Internet server, chúng ta sử dụng hàm socket có sẵn trong module socket để tạo đối tượng socket. Một đối tượng ổ cắm sau đó được sử dụng để gọi các chức năng khác để thiết lập máy chủ ổ cắm

Bây giờ gọi hàm bind(hostname, port) để chỉ định cổng cho dịch vụ của bạn trên máy chủ đã cho

Tiếp theo, gọi phương thức chấp nhận của đối tượng được trả về. Phương thức này đợi cho đến khi một máy khách kết nối với cổng mà bạn đã chỉ định, sau đó trả về một đối tượng kết nối đại diện cho kết nối với máy khách đó

#!/usr/bin/python           # This is server.py file

import socket               # Import socket module

s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.
s.bind((host, port))        # Bind to the port

s.listen(5)                 # Now wait for client connection.
while True:
   c, addr = s.accept()     # Establish connection with client.
   print 'Got connection from', addr
   c.send('Thank you for connecting')
   c.close()                # Close the connection

Một khách hàng đơn giản

Hãy để chúng tôi viết một chương trình máy khách rất đơn giản để mở một kết nối đến một cổng 12345 đã cho và một máy chủ đã cho. Điều này rất đơn giản để tạo một ứng dụng khách ổ cắm bằng chức năng mô-đun ổ cắm của Python

Cái ổ cắm. connect(hostname, port ) mở kết nối TCP tới tên máy chủ trên cổng. Khi bạn mở một ổ cắm, bạn có thể đọc từ nó như bất kỳ đối tượng IO nào. Khi hoàn tất, hãy nhớ đóng nó, như bạn sẽ đóng một tệp

Đoạn mã sau là một ứng dụng khách rất đơn giản kết nối với một máy chủ và cổng nhất định, đọc bất kỳ dữ liệu có sẵn nào từ ổ cắm và sau đó thoát ra -

#!/usr/bin/python           # This is client.py file

import socket               # Import socket module

s = socket.socket()         # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345                # Reserve a port for your service.

s.connect((host, port))
print s.recv(1024)
s.close()                     # Close the socket when done

Bây giờ hãy chạy máy chủ này. py ở chế độ nền rồi chạy phía trên máy khách. py để xem kết quả

# Following would start a server in background.
$ python server.py & 

# Once server is started run client as follows:
$ python client.py

Điều này sẽ tạo ra kết quả sau -

Got connection from ('127.0.0.1', 48437)
Thank you for connecting

Mô-đun Internet Python

Danh sách một số module quan trọng trong lập trình Mạng/Internet Python

Giao thứcChức năng chungCổng NoMô-đun PythonHTTPTrang web80httplib, urllib, xmlrpclibNNTPSử dụng tin tức mạng119nntplibFTPTruyền tệp20ftplib, urllibSMTPSgửi email25smtplibPOP3Tìm nạp email110poplibIMAP4Tìm nạp email143imaplibTelnetDòng lệnh23telnetlibGopherChuyển tài liệu70gopherlib, urllib

Vui lòng kiểm tra tất cả các thư viện được đề cập ở trên để hoạt động với các giao thức FTP, SMTP, POP và IMAP

Đọc thêm

Đây là một khởi đầu nhanh chóng với Lập trình Socket. Đó là một chủ đề rộng lớn. Bạn nên đi qua liên kết sau để tìm thêm chi tiết -

Ổ cắm kết nối trong Python là gì?

Ổ cắm và API ổ cắm được dùng để gửi tin nhắn qua mạng . Họ cung cấp một hình thức giao tiếp giữa các quá trình (IPC). Mạng có thể là mạng logic, cục bộ với máy tính hoặc mạng được kết nối vật lý với mạng bên ngoài, có kết nối riêng với các mạng khác.

Làm cách nào để kết nối máy khách với máy chủ bằng socket trong Python?

Để sử dụng kết nối ổ cắm python, chúng ta cần nhập mô-đun ổ cắm. Sau đó, tuần tự chúng ta cần thực hiện một số tác vụ để thiết lập kết nối giữa máy chủ và máy khách . Chúng tôi có thể lấy địa chỉ máy chủ bằng cách sử dụng ổ cắm. hàm gethostname().

Làm cách nào để thiết lập ổ cắm Python?

Để sử dụng đối tượng ổ cắm trong chương trình, hãy nhập thư viện ổ cắm đi kèm với Python . Sau đó, bạn sẽ tạo một đối tượng ổ cắm mới kết nối với một địa chỉ IP đã chỉ định (trong trường hợp này là số cổng của máy chủ cục bộ 8080 ) để tạo một kết nối mới tới máy chủ ổ cắm (sẽ được tạo ngay trong máy chủ. py).

Làm cách nào để gửi dữ liệu bằng socket trong Python?

Ví dụ – Máy khách dựa trên TCP. .
clientSocket = ổ cắm. ổ cắm (ổ cắm. AF_INET, ổ cắm. SOCK_STREAM); . clientSocket. kết nối(("127. 0. 0. 1",9090));
# Gửi dữ liệu đến máy chủ. dữ liệu = "Xin chào máy chủ. "; clientSocket. gửi dữ liệu. mã hóa());
dataFromServer = clientSocket. recv(1024);