Найти тему
Блог Хонеста

Как сделать чат на Python просто(Клиент и сервер).

Всем привет! Не для кого не секрет, что мы каждый день пользуемся мессенджерами, такими как Telegram, What's App, Discord и т.д. В этой статье я расскажу, как сделать такое приложение.

Я не буду использовать шифрование. Я эту задачу отдам вам

Начнем писать сервер!

Код сервера примерно такой:

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind (('94.250.252.115',5050))
client = [] # Массив где храним адреса клиентов
print ('Start Server')
while True:
data, address = sock.recvfrom(1024)
print (address[0], address[1])
if address not in client:
client.append(address)# Если такого клиента нету , то добавить
for clients in client :
if clients == address:
continue # Не отправлять данные клиенту, который их прислал
sock.sendto(data, clients)

Этот код довольно простой(если не понятно, то Google в помощь )).

Клиент более сложный, ведь нам надо получать и отправлять сообщения одновременно. Код клиента:

import socket
import threading
def read_sok():
while 1 :
data = sor.recv(1024)
print(data.decode('utf-8'))
server = '192.168.0.1', 5050 # Данные сервера
alias = input() # Вводим наш псевдоним
sor = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sor.bind(('', 0)) # Задаем сокет как клиент
sor.sendto((alias+' Connect to server').encode('utf-8'), server)# Уведомляем сервер о подключении
potok = threading.Thread(target= read_sok)
potok.start()
while True:
mensahe = input()
sor.sendto(('['+alias+']'+mensahe).encode('utf-8'), server)

Вот весь код. Его можно улучшить, поставьте лайк автору за него старания и подпишитесь на канал, предлагайте идеи в комментариях и наслаждайтесь моими статьями. Всем пока!