3 cách để viết một máy chủ với Python

Mục lục:

3 cách để viết một máy chủ với Python
3 cách để viết một máy chủ với Python

Video: 3 cách để viết một máy chủ với Python

Video: 3 cách để viết một máy chủ với Python
Video: 2 bước đơn giản để quản lý email Outlook hiệu quả 2024, Tháng tư
Anonim

Tạo một máy chủ từ đầu là một nhiệm vụ lớn. Tuy nhiên, làm như vậy có thể cải thiện đáng kể kỹ năng lập trình của bạn và có thể cho phép bạn sửa đổi nó theo nhu cầu của mình. Hướng dẫn này sẽ sử dụng Python và lập trình socket cấp thấp để tạo một máy chủ để các máy khách có thể giao tiếp với nhau. Điều này cũng sẽ chỉ bao gồm quá trình trên windows. Một số thông tin sẽ được cung cấp trong hướng dẫn, nhưng nếu bạn chỉ muốn mã, nó sẽ được cung cấp trong các hình. (Lưu ý: các hướng dẫn được trình bày ở đây chỉ là những điều cơ bản).

Các bước

Phương pháp 1/3: Cài đặt Python

Viết máy chủ với Python Bước 1
Viết máy chủ với Python Bước 1

Bước 1. Tải xuống Python

Truy cập trang web chính của python và tải xuống Python 2.7.10. Sau khi tải xuống, hãy chạy qua các bước của trình cài đặt python với cài đặt mặc định. Liên kết này được cung cấp tại đây

Viết máy chủ với Python Bước 2
Viết máy chủ với Python Bước 2

Bước 2. Chạy IDLE (Python GUI)

Đi vào thư mục Python 2.7 và chạy IDLE (Python GUI), python bây giờ sẽ nằm trong menu bắt đầu của bạn nơi chứa IDLE.

Viết máy chủ bằng Python Bước 3
Viết máy chủ bằng Python Bước 3

Bước 3. Tạo một tệp mới

Vào File ở góc trên cùng bên trái của cửa sổ mới mở và chọn New File, bạn sẽ có một cửa sổ trống mở ra với tiêu đề là Untitled.

Phương pháp 2/3: Tạo máy chủ

Viết máy chủ bằng Python Bước 4
Viết máy chủ bằng Python Bước 4

Bước 1. Nhập các mô-đun cần thiết

Hai mô-đun cần thiết cho mã này là “socket” và “threading”. Điều này có thể được thực hiện bằng cách gõ vào dòng đầu tiên “từ socket nhập *” và trên dòng tiếp theo “nhập luồng”.

Viết máy chủ với Python Bước 5
Viết máy chủ với Python Bước 5

Bước 2. Tạo một chủ đề mới

Điều này sẽ xử lý kết hợp 2 khách hàng với nhau. Luồng là các tiến trình có thể chạy trong khi chương trình chính chạy. Nhập chính xác như hình vẽ hiển thị. Thao tác này sẽ thiết lập các biến trong luồng để chúng có thể được gọi sau này.

Viết máy chủ với Python Bước 6
Viết máy chủ với Python Bước 6

Bước 3. Tạo quy trình luồng

Để khách hàng có thể giao tiếp trực tiếp, bạn cần gửi cho nhau thông tin, bao gồm địa chỉ IP của họ và cổng nào họ đang sử dụng. Để làm điều này, bạn phải tạo một đối tượng socket có thể được thực hiện với “variableName = socket (AF_NET, SOCK_DGRAM)”. Điều này sẽ tạo một đối tượng socket sử dụng giao thức UDP. Tiếp theo Liên kết ổ cắm với địa chỉ IP của bạn bằng một số cổng nhất định với “roomSocket.bind (('', self.port))” Vùng trống là đại diện cho địa chỉ IP máy tính của bạn trong mạng cục bộ của bạn và self.port chỉ định số cổng được bao gồm khi bạn gọi chuỗi này. Điều cuối cùng bạn phải làm với ổ cắm này là gửi thông tin qua nó. Vì đây là ổ cắm UDP, bạn chỉ cần biết IP và cổng của máy tính mà bạn đang gửi thông tin đến, cú pháp để gửi là "socketName.sendto (IP, cổng)"

Viết máy chủ với Python Bước 7
Viết máy chủ với Python Bước 7

Bước 4. Tạo các biến toàn cục

Đối với bước này, bạn sẽ cần xác định một số biến, bao gồm danh sách người dùng, số cổng, số lượng khách hàng, khách hàng cho chuỗi và ID phòng. Bạn cũng sẽ cần tạo một ổ cắm để máy chủ của bạn có thể tương tác với internet. Điều này được thực hiện bằng cách tạo một đối tượng socket mới và liên kết nó với địa chỉ IP của bạn bằng một số cổng nhất định. (Số cổng có thể là bất kỳ thứ gì nhưng nó thường là một số cao để tránh việc một quy trình khác sử dụng nó hoặc sử dụng số cổng dành riêng.)

Viết máy chủ với Python Bước 8
Viết máy chủ với Python Bước 8

Bước 5. Tạo tiến trình máy chủ chính

Thao tác này sẽ lấy địa chỉ máy khách cũng như bắt đầu luồng đã tạo trước đó. Điều này bao gồm việc chờ đợi để nhận dữ liệu từ bộ đệm và lấy địa chỉ máy khách và lưu nó để sử dụng trong luồng. Cách để lấy thông tin từ socket của bạn là gọi bằng “socketName.recvfrom (1024)”, số ở đây chỉ là số lượng byte được đọc tại một thời điểm. Trong ví dụ này, chúng tôi đang lưu trữ nó vào một biến có tên là userAddr và khi điều này xảy ra, bạn có thể lưu địa chỉ này vào danh sách đã được tạo ở bước 4. Câu lệnh if sẽ tạo một chuỗi phòng nếu hai người kết nối và sẽ chỉ tạo một phòng khi hai kết nối khác nhau xảy ra.

Viết máy chủ với Python Bước 9
Viết máy chủ với Python Bước 9

Bước 6. Lưu công việc của bạn

Việc này nên được thực hiện trong một thư mục dễ truy cập để có thể dễ dàng truy cập để kiểm tra.

Phương pháp 3/3: Thử nghiệm

Viết máy chủ với Python Bước 10
Viết máy chủ với Python Bước 10

Bước 1. Tạo một khách hàng thử nghiệm

Đây là một ứng dụng khách rất cơ bản sẽ chỉ xử lý xem máy chủ đã gửi thông tin của ứng dụng khách khác đến ứng dụng khách hiện tại hay chưa. Xin lưu ý rằng không giống như mã máy chủ, mã này yêu cầu tên máy chủ. Nếu bạn đang chạy tất cả những điều này trên một máy tính, tên máy chủ phải là tên PC của bạn. Bạn có thể tìm ra tên máy tính của mình bằng cách nhấp chuột phải vào Máy tính của tôi và chuyển đến thuộc tính.

Viết máy chủ với Python Bước 11
Viết máy chủ với Python Bước 11

Bước 2. Lưu công việc của bạn

Điều này phải nằm trong cùng một thư mục với mã máy chủ.

Viết máy chủ với Python Bước 12
Viết máy chủ với Python Bước 12

Bước 3. Mở ba cửa sổ lệnh khác nhau

Chuyển đến menu bắt đầu và trong thanh tìm kiếm, nhập “cmd” và nhấn enter. Làm điều này ba lần. Các cửa sổ sẽ trông như thế này.

Viết máy chủ với Python Bước 13
Viết máy chủ với Python Bước 13

Bước 4. Chạy chương trình

Bạn sẽ phải nhập đường dẫn chính xác khi sử dụng cửa sổ lệnh. Trước tiên, bạn sẽ cần chạy mã máy chủ trên một cửa sổ lệnh và sau đó là mã máy khách thử nghiệm trên hai cửa sổ còn lại. Nếu mọi thứ thành công, bạn sẽ nhận được một cái gì đó những thông báo này trong cửa sổ của bạn.

Cảnh báo

  • Chương trình này sẽ chỉ hoạt động khi chạy nó và kiểm tra các máy khách trên cùng một mạng cục bộ.
  • Python 2.7.10 đã lỗi thời và sắp hết hỗ trợ. Để tiếp tục tạo ra các máy chủ tốt, bạn nên cài đặt phiên bản Python 3 mới nhất.

Đề xuất: