Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 8

Не отправляется сообщения от клиента к серверу через socket

11.12.2020, 14:59. Показов 4403. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте, решил сделать простенький чат client-server с использованием tkinter для клиента, чтобы была визуализация самого чата. Сервер подтверждает подключение клиента, но сообщения не отправляются и вылезает такая ошибка:

Python
1
2
3
File "", line 35, in send
    client.send(message)
TypeError: a bytes-like object is required, not 'str'
Как я понял, чтобы отправить сообщение требуется писать в байтах?

Сервер:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import socket
import threading
 
 
server = socket.socket(
    
    socket.AF_INET,
    socket.SOCK_STREAM,
    
)
 
 
server.bind(
    ("127.0.0.1", 1234)
)
 
server.listen(5)
print("Server is listening")
 
users = []
 
 
def send_all(data):
    for user in users:
        user.send(data)
 
 
def listen_user(user):
    print("Listening user")
 
    while True:
        data = user.recv(2048)
        print(f"User sent {data}")
 
        send_all(data)
 
 
def start_server():
    while True:
        user_socket, address = server.accept()
        print(f"User <{address[0]}> connected!")
 
        users.append(user_socket)
        listen_accepted_user = threading.Thread(
            target=listen_user,
            args=(user_socket,)
        )
 
        listen_accepted_user.start()
Клиент
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import socket
from tkinter import *
from threading import Thread
 
 
#init Tkinter
root = Tk()
App = root
root.title("Client-chat")
root.configure(bg = "#DEE2E3")
App.geometry("400x450")
 
client = socket.socket(
 
    socket.AF_INET,
    socket.SOCK_STREAM,
 
)
 
client.connect(
    ("127.0.0.1", 1234)
)
 
#chat
def listen_server():
    while True:
        data = client.recv(2048)
        print(data.decode("utf-8"))
 
 
def send():
    listen_thread = Thread(target=listen_server)
    listen_thread.start()
    message = typeBox.get()
    client.send(message)
    data = client.recv(2048)
    print(data)
 
    while True:
        client.send(input("").encode("utf-8"))
 
 
#Input
typeBox = Entry(root, text = '');
send = Button(root, text = 'Send', bg = "#A0DEF2", font = ('times', 14, 'bold'), command = send)
typeBox.pack(side = BOTTOM, fill = X);
send.pack(side = BOTTOM, fill = X);
 
root.mainloop()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2020, 14:59
Ответы с готовыми решениями:

Подключение клиента к серверу Socket
Здравствуйте! Подскажите пожалуйста При подключение к серверу клиента всё работает хорошо, после отключаемся и подключаемся снова*...

Не отправляется почта gmail: серверу SMTP требовалось защищенное соединение или подлинность клиента не была
Пробовал отправить почту двумя способами, вылетает ошибка. В чем проблема? SmtpClient Smtp = new SmtpClient(&quot;smtp.gmail.com&quot;,...

Передача сообщения от клиентов к серверу Socket
Доброго времени суток, сидел целые 2 сутки думал разберусь сам... но не тут то было... Суть проблемы: Надо написать службу которая через...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2020, 14:59
Помогаю со студенческими работами здесь

Socket Server/Client. Падение клиента при коннекте к серверу
В общем есть сервер: using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

Передача сообщения от клиента к серверу, сокеты
Хочу передать сообщение от клиента к серверу и вывести это сообщение. Как это сделать? сервер #ifndef UNICODE #define UNICODE ...

Отправка сообщения от клиента серверу каждые 2 секунды
Подскажите пожалуйста,как реализовать на си таймер в данной ситуации. Клиент каждые 2 секунды отправляет сообщение на сервер.Сообщения он...

TCP(Server/client): отправка сообщения серверу от клиента
добрый день, подскажи пожалуйста как можно из сервера отправить клиенту сообщение? делаю так TCPServer1.Sendln('Hello World'); не...

Помеха с типом char, при приёме сообщения от клиента к серверу (c++)
Здравствуйте. Программа должна работать следующим образом: сервер на c++ ожидает подключение клиента, после этого отправляет ему сообщение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru