Hướng dẫn python chat application source code - mã nguồn ứng dụng trò chuyện python

Ứng dụng trò chuyện rất phổ biến ngày hôm nay được cung cấp thông qua ứng dụng web hoặc ứng dụng di động. Học cách viết một ứng dụng trò chuyện là tốt để hiểu nhiều khái niệm giao tiếp mạng và có thể hữu ích để xây dựng các ứng dụng mạng khác. Ứng dụng trò chuyện cung cấp giao tiếp giữa hai bên, tức là người gửi và người nhận. Người gửi là người khởi xướng và gửi tin nhắn cho người khác được gọi là người nhận; Người nhận ở đầu khác nhận tin nhắn. Vai trò của người gửi và người nhận không cố định và tiếp tục trao đổi trong quá trình giao tiếp, vì vậy, trong một từ đơn giản, tại một điểm, một người gửi tin nhắn là người gửi và người nhận được tin nhắn được gọi là người nhận. Trong các điều khoản kết nối mạng, người gửi và người nhận được ký hiệu là nguồn và đích tương ứng.Chat Application is very common today offered either via a web application or mobile application. Learning to write a Chat Application is good for understanding many network communication concepts and can be useful to build other network applications. Chat Application provides communication between two parties i.e. sender and receiver. The sender is someone who initiates and send a message to other known as receiver; receiver at other end receives the message. The role of sender and receiver is not fixed and keep exchanging during communication, so in simple words, at a point, someone who sends the message is a sender and who receive the message is called receiver. In networking terms, sender and receiver are denoted as source and destination respectively.

Giao tiếp có thể thuộc nhiều loại tùy thuộc vào phương pháp giao tiếp và số lượng các bên liên quan. Một số kịch bản là:

  1. Simplex hoặc giao tiếp một chiều: Chỉ một bên có thể gửi tin nhắn và các bên khác chỉ có thể nhận được. Only one party is able to send the message and other parties can only receive.
  2. Giao tiếp song công hoặc hai chiều: Cả hai bên có thể gửi và nhận tin nhắn. Both parties can send and receive messages.

Giao tiếp song công là một cách giao tiếp phổ biến và có thể là một-một (trò chuyện đơn giản) hoặc nhiều đến nhiều (phòng trò chuyện) is a common way of communication and can be one-to-one (simple chat) or many-to-many (chat room)

Nói chung, trong giao tiếp trong thế giới thực được thực hiện trực tiếp bằng cách sử dụng giọng nói trong một tình huống lý tưởng (khoảng cách giữa các bên giao tiếp, xác định các bên) & nbsp; Trường hợp người gửi lên tiếng và người nhận dự định trả lời sau khi nghe. Vì vậy, phương tiện giao tiếp ở đây là gì? Thật vậy, đó là không khí giúp giọng nói của chúng tôi đi đến người nhận và giao tiếp thành công phụ thuộc vào không khí (gió cao và đường dài có thể gây rắc rối). Trong giao tiếp trực tuyến hoặc kỹ thuật số, vai trò của Air được chơi bởi kênh mạng (Cáp đồng trục, sợi quang, v.v.) và giao tiếp được điều khiển bởi một máy chủ. Một máy chủ là một chương trình điều chỉnh giao tiếp giữa người gửi và người nhận.sender speak out and the intended receiver respond after listening. So, what is the medium of communication here? Indeed, it is the air which helps our voice to travel to the receiver and successful communication depends upon air (high wind and long-distance can cause trouble). In online or digital communication the role of air is played by network channel (coaxial cable, fiber optics, etc.) and communication is controlled by a server. A server is a program which regulates the communication between sender and receiver.

Vì vậy, để tạo một ứng dụng Pythonchat, người ta phải viết chương trình máy chủ và chương trình khách hàng/s (người gửi và người nhận). Giả sử, hai bên Alice và Bob muốn trò chuyện với nhau và yêu cầu bạn phát triển một ứng dụng trò chuyện sau đó là nhà phát triển, bạn phải viết một máy chủ và chương trình khách hàng (trường hợp khác nhau của cùng một chương trình sẽ được cả Alice và Bob hoặc Bob hoặc Bob hoặc Bob sử dụng Thậm chí nhiều người dùng hơn).Python Chat Application, one has to write a server program and client program/s (sender and receiver). Suppose, two parties Alice and Bob want to chat with each other and ask you to develop a chat application then being a developer you have to write a server program and a client program (different instance of the same program will be used by both Alice and Bob or even more users).

Chúng tôi sẽ chứng minh kịch bản đã nói ở trên và sẽ phát triển một ứng dụng Pythonchat cho Alice và Bob. Python có nhiều mô-đun có thể giúp chúng tôi tạo ứng dụng liên quan đến mạng, ổ cắm là một trong những mô-đun Python mặc định phổ biến như vậy để lập trình mạng cấp thấp. Trước tiên chúng tôi sẽ liệt kê và giải thích các bước cho các chương trình máy chủ và máy khách và sau đó thực hiện tương tự bằng Python.Python Chat Application for Alice and Bob. Python has many modules which can help us to create network-related application, the socket is one of such popular default Python modules for low-level network programming. We will first list and explain the steps for server and client programs and then implement the same using Python.

Tập lệnh máy chủ

Chương trình máy chủ có tất cả logic để kiểm soát và điều chỉnh trò chuyện, vì vậy hầu hết logic trò chuyện được triển khai với chương trình máy chủ. Vì vậy, bước đầu tiên của giao tiếp là xác định người dùng, máy chủ làm điều này như thế nào? Trong giao tiếp mạng, người dùng được xác định bởi một ổ cắm không có gì ngoài sự kết hợp giữa địa chỉ IP và địa chỉ cổng. Vì vậy, đối với sự hiểu biết của con người, Alice và Bob sẽ trò chuyện nhưng đối với một mạng, đó là hai quy trình khai thác đang gửi và nhận byte. & NBSP; Các bước liên quan đến quá trình này như sau: has all the logic to control and regulate the Chat, so most of the chat logic is implemented with a server program. So first step of communication is to identify the users, how server do this? In network communication, users are identified by a socket which is nothing but a combination of IP address and port address. So, for human understanding, Alice and Bob will be chatting but for a network, it is two sockets process which is sending and receiving bytes.  Steps involved in this process is as follows:

  1. Tạo ổ cắm
  2. Giao tiếp địa chỉ ổ cắm
  3. Tiếp tục chờ đợi một yêu cầu/s kết nối đến
  4. Kết nối với máy khách
  5. Nhận tin nhắn
  6. Giải mã người dùng đích và chọn ổ cắm
  7. Gửi tin nhắn cho khách hàng dự định
  8. Tiếp tục lặp lại Bước 5 & 6 theo mong muốn
  9. Thoát tức là kết thúc giao tiếp bằng cách chấm dứt kết nối

Đây là mã cho server-chat.pyserver-chat.py

import socket,select

port = 12345
socket_list = []
users = {}
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(('',port))
server_socket.listen(5)
socket_list.append(server_socket)
while True:
    ready_to_read,ready_to_write,in_error = select.select(socket_list,[],[],0)
    for sock in ready_to_read:
        if sock == server_socket:
            connect, addr = server_socket.accept()
            socket_list.append(connect)
            connect.send("You are connected from:" + str(addr))
        else:
            try:
                data = sock.recv(2048)
                if data.startswith("#"):
                    users[data[1:].lower()]=connect
                    print "User " + data[1:] +" added."
                    connect.send("Your user detail saved as : "+str(data[1:]))
                elif data.startswith("@"):
                    users[data[1:data.index(':')].lower()].send(data[data.index(':')+1:])
            except:
                continue

server_socket.close()

Tập lệnh khách hàng

Tập lệnh máy khách được chạy bởi người dùng, vì vậy cùng một mã khách sẽ được chạy bởi một người dùng khác nhưng mỗi người sẽ có một ổ cắm riêng để họ sẽ có kênh truyền thông duy nhất của họ. Tập lệnh khách hàng sử dụng để mỏng vì nó có công việc rất ít, tức là nó chỉ kết nối với máy chủ và gửi và nhận tin nhắn. Các bước liên quan đến tập lệnh khách hàng là: script is run by the user, so the same client code will be run by a different user but each will have a separate socket so they will have their unique communication channel. Client script uses to be thin because it has very less work i.e. it only connect with the server and send and receive messages. The steps involved in client script are:

  1. Tạo ổ cắm máy khách duy nhất cho mỗi phiên bản/người dùng
  2. Kết nối với máy chủ với địa chỉ ổ cắm đã cho (IP và cổng)
  3. Gửi và nhận tin nhắn
  4. Lặp lại bước 3 theo cấu hình
  5. Đóng kết nối

Đây là mã cho client-chat.pyclient-chat.py

import socket

client_socket = socket.socket()
port = 12345
client_socket.connect(('127.0.0.1',port))

#recieve connection message from server
recv_msg = client_socket.recv(1024)
print recv_msg

#send user details to server
send_msg = raw_input("Enter your user name(prefix with #):")
client_socket.send(send_msg)


#receive and send message from/to different user/s

while True:
    recv_msg = client_socket.recv(1024)
    print recv_msg
    send_msg = raw_input("Send your message in format [@user:message] ")
    if send_msg == 'exit':
        break;
    else:
        client_socket.send(send_msg)

client_socket.close()

Trong chương trình trên, mỗi người dùng phải chạy tập lệnh máy khách một cách riêng biệt sau khi tập lệnh máy chủ đang chạy. Khi chương trình máy khách kết nối với máy chủ, máy khách phải đăng ký với tư cách là người dùng bằng cách đặt tên người dùng, do đó, phần còn lại của giao tiếp sẽ được thực hiện bằng cách sử dụng tên người dùng.client script separately after the server script is running. Once the client program connects to the server the client has to register itself as a user by giving a username, so the rest of the communication will be done using the username.

Hướng dẫn python chat application source code - mã nguồn ứng dụng trò chuyện python

Các bước để chạy ứng dụng trò chuyện mẫu:

1. Mở một thiết bị đầu cuối và chạy server-chat.pyserver-chat.py

2. Mở một thiết bị đầu cuối mới và chạy client-chat.pyclient-chat.py

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; a) Nhập tên người dùng với tiền tố ‘##. Ví dụ: #Alice‘#’ prefix. Example: #alice

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; b) Bây giờ, hãy gửi tin nhắn cho người dùng bằng cách theo định dạng @username:message. Ví dụ: @bob:Hello, Bob! This is alice@username:message. Example: @bob:Hello, Bob! This is alice

3. Lặp lại bước 2 cho người dùng khác. (Tối đa 5 người dùng được phép với cấu hình máy chủ, tức là server_socket.listen(5)step 2 for other users. (Maximum 5 users is allowed with server configuration i.e. server_socket.listen(5)

Limitations:

Bản demo này trên ứng dụng trò chuyện Python có khả năng hạn chế như người dùng chỉ nhận được tin nhắn sau khi cả hai bên nhập tin nhắn cho nhau. Xác thực người dùng thích hợp, vv không được thực hiện.Python Chat Application has limited capabilities like the user get the message only after both parties enter the message to each other. Proper user validation etc. is not done.

Làm:

  1. Kiểm tra một tính năng mật mã đơn giản.
  2. Thêm xác thực thích hợp của người dùng.

Lưu ý: Cả hai tập lệnh đều dựa trên các nguồn Internet khác nhau. both scripts are based on various Internet sources.

Tôi hy vọng bài viết này là hữu ích cho bạn, xin vui lòng cho tôi biết trong phần bình luận bên dưới.

Ở đây, một số bài viết khác, bạn có thể quan tâm:

- & NBSP; Top 5 khung web Python để học

- & NBSP; Trực quan hóa dữ liệu trong Python bằng biểu đồ dòng đơn giản

- & nbsp; đây là mười ngôn ngữ lập trình tốt nhất để học

Tiết lộ kết nối vật liệu: Một số liên kết trong bài đăng trên là các liên kết liên kết của người dùng. Điều này có nghĩa là nếu bạn nhấp vào liên kết và mua mặt hàng, chúng tôi sẽ nhận được một khoản hoa hồng liên kết. Bất kể, chúng tôi chỉ giới thiệu các sản phẩm hoặc dịch vụ chúng tôi sử dụng cá nhân và tin rằng sẽ tăng thêm giá trị cho độc giả của chúng tôi.

Làm thế nào để bạn lập trình một ứng dụng trò chuyện trong Python?

Các bước liên quan đến quá trình này như sau:..
Tạo ổ cắm ..
Giao tiếp địa chỉ ổ cắm ..
Tiếp tục chờ đợi một yêu cầu kết nối đến ..
Kết nối với khách hàng ..
Nhận tin nhắn ..
Giải mã người dùng đích và chọn ổ cắm ..
Gửi tin nhắn cho khách hàng dự định ..
Tiếp tục lặp lại Bước 5 & 6 theo mong muốn của người dùng ..

Làm cách nào để tạo một hộp trò chuyện trong Python?

Làm thế nào để làm cho hộp trò chuyện đơn giản trong Python..
Chúng tôi sẽ nhập mô -đun ổ cắm ..
Nhận tên máy chủ bằng cách sử dụng phương thức hostName () ..
Đặt một cổng cho dịch vụ của bạn.Các số cổng từ 1-1024 được dành riêng cho các giao thức cốt lõi.....
ổ cắm.Ổ cắm () sẽ tạo một ổ cắm mới.....
S.....
S.....
S.....
Tạo một vòng lặp trong thời gian để nhận và gửi dữ liệu ..

Tôi có thể tạo một ứng dụng trò chuyện với Django không?

Phòng trò chuyện là bước cơ bản nhất để tạo ra các dự án thời gian thực và trực tiếp.Trang trò chuyện mà chúng tôi sẽ tạo sẽ là một nồi hơi HTML đơn giản với một văn bản H1 đơn giản với tên của người dùng hiện tại và liên kết để đăng xuất cho người dùng vừa đăng nhập.

Làm thế nào để bạn lập trình một ứng dụng trò chuyện?

Các bước phát triển ứng dụng trò chuyện: Tổng quan về quy trình..
Tạo một thư mục & cài đặt phụ thuộc.....
Xây dựng giao diện trò chuyện phía trước & máy khách trò chuyện.....
Tạo và/hoặc kết nối phần cuối (máy chủ chat) ....
Ưu tiên mở rộng tính năng dựa trên phản hồi của người dùng ..