|
10 / 10 / 3
Регистрация: 09.11.2011
Сообщений: 73
|
|||||||||||
.NET 2.x Многопользовательский чат на TcpClient09.11.2011, 10:47. Показов 7405. Ответов 9
Метки нет (Все метки)
Решил написать чат.
сервер:
0
|
|||||||||||
| 09.11.2011, 10:47 | |
|
Ответы с готовыми решениями:
9
Многопользовательский голосовой чат
Многопользовательский чат |
|
10 / 10 / 3
Регистрация: 09.11.2011
Сообщений: 73
|
||||||
| 09.11.2011, 12:45 [ТС] | ||||||
|
опишу поподробнее. сервер запускается и ждет подключение клиента. когда клиент подключается то он переходит в поток wordclient. здесь сервер считывает сообщение от клиента и по первой букве в сообщении понимает тип полученного сообщения. "n" - это ник. когда сервер получает ник он должен добавить клиента в список users, и в ответ отправить ему список клиентов онлайн, а так же всем клиентам которые онлайн разослать сообщение, с первой буквой "а", о том что добавился новый клиент.
Вся проблема в том что при добавлении нового клиента список почему-то перезатирается последним подключившимся клиентом.
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 09.11.2011, 13:15 | |
|
Так вы каждый раз добавляете в список ссылку на один и тот же объект. В результате в списке несколько ссылок, но они все указывают на одно и то же место в памяти.
Клиент залогинился, вы перезаписали данные объекта, вот все остальные ссылки и отображают изменения. А вообще простите за прямоту, но код сервера ужасен. Руки чешутся отрефакторить почти каждую строчку.
1
|
|
|
10 / 10 / 3
Регистрация: 09.11.2011
Сообщений: 73
|
|
| 09.11.2011, 15:43 [ТС] | |
|
новичек я(((
буду рад если поможите))) Добавлено через 10 минут я так понял надо сделать tcpclient[] client??? Добавлено через 6 минут просто не пойму как сделать(((((((((((( Добавлено через 1 час 56 минут помогите сделать чтобы не перезатиралось, просто я понятия не имею как....
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 09.11.2011, 16:23 | ||
|
Уберите статическое поле tempclient и при подключении пользователя каждый раз создавайте новый объект.
1
|
||
|
10 / 10 / 3
Регистрация: 09.11.2011
Сообщений: 73
|
|
| 09.11.2011, 16:43 [ТС] | |
|
а можете пояснить что именно косячного в сервере? наверное принципиально не так пишу??
Добавлено через 3 минуты когда убираю статик кричит: Ошибка 2 Для нестатического поля, метода или свойства "ConsoleApplication1.Program.tmpuser " требуется ссылка на объект C:\Users\U418_2\Desktop\Console server chat\Console server chat\Program.cs 84 21 Console server chat а как эту ссылку сделать незнаю((((((
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 09.11.2011, 17:31 | ||||
|
Именование переменных и типов. Создание потоков для клиентов. Синхронизация (вернее, ее отсутствие) между потоками. Построение строки в цикле через += Чтение юникода из потока без учета размера char Сам протокол общения (удачи поболтать на английском) Полное отсутствие обработки исключений (напр. весь сервер закрашится, если отрубит хотя бы одного клиента). Оно понятно, что на данном этапе код пишется по методу "чтоб запускалось" и со временем будет обрастать всем нужным. Вместо статического поля создавайте ее каждый раз заново при подключении нового клиента. А вот по поводу протокола я бы задумался - не понятно как общаться, используя латиницу.
1
|
||||
|
10 / 10 / 3
Регистрация: 09.11.2011
Сообщений: 73
|
|
| 09.11.2011, 18:23 [ТС] | |
|
под tempclient вы имеете ввиду tmpuser?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||||||||||||
| 09.11.2011, 18:33 | ||||||||||||||||
|
Ага, его самого.
На 85-й строчке перед строкой
1
|
||||||||||||||||
|
10 / 10 / 3
Регистрация: 09.11.2011
Сообщений: 73
|
||||||
| 14.11.2011, 17:03 [ТС] | ||||||
|
Все работает. клиентов добавляет. спасибо!!!
Но теперь проблема в другом(((( сервер имеет теперь такой код
Теперь при отключении клиента и повторном его включении кричит на 153 строку. кричит что типа объект удален. SendMessageAll вызывается со строки 108
0
|
||||||
| 14.11.2011, 17:03 | |
|
Помогаю со студенческими работами здесь
10
Многопользовательский чат по WebSocket
Многопользовательский чат на socket. Не обновляется список пользователей Как создать многопользовательский чат (Сервер-клиент) c# многопользовательский чат с отдельным сервером. не могу понять в чем дело Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|