0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 156
|
|
1 | |
Чат на сокетах C++01.06.2020, 23:41. Показов 448. Ответов 9
Здравствуйте, необходимо реализовать чат (клиент и сервер) на сокетах. Имеется вопрос , каким образом можно реализовать передачу сообщения конкретному человеку по нику, тоесть если он в "сети", то пишет его ник и только ему приходит сообщение , если же написал ник человека, а его нет в сети, то ошибка?
0
|
01.06.2020, 23:41 | |
Ответы с готовыми решениями:
9
Чат на сокетах Чат на сокетах Простой чат на сокетах Сделать чат на сокетах |
01.06.2020, 23:59 | 2 |
Ну, сервер знает же список всех, кто к нему подключился. придумай уж там какой-нибудь формат сообщения от клиента серверу, чтоб с одним айдишником скажем логинил клиента и принимал от него никнейм. С другим принимал бы текстовое сообщение для адресата итд
Никнеймы бы сохранялись на сервере в каком нибудь списке вместе с сокетом соединения с каждым клиентом и другой инфой о них. сервер бы по очереди обрабатывал бы сообщения, прочитанные из каждого сокета и по никнейму в списке определял бы, в какой сокет переслать текст.
1
|
0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 156
|
|
02.06.2020, 00:01 [ТС] | 3 |
Kuzia domovenok, а каким образом можно получить список подключившихся к серверу?
0
|
фрилансер
5503 / 5098 / 1048
Регистрация: 11.10.2019
Сообщений: 13,358
|
|
02.06.2020, 00:04 | 4 |
Houz, введи понятие сессии. ID сессии - уникальное (на время работы приложения-сервера) значение . Во время каждого accept счётчик ID увеличивается на 1 и новое значение ассоциируется с новым принятым сокетом. Удалённая сторона присылает авторизацию (логин), таким образом к ID можно привязать логин
1
|
0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 156
|
|
02.06.2020, 00:06 [ТС] | 5 |
Алексей1153, а у вас не будет примера ?
0
|
фрилансер
5503 / 5098 / 1048
Регистрация: 11.10.2019
Сообщений: 13,358
|
|
02.06.2020, 00:11 | 6 |
Houz, а какой тут пример требуется ? Accept где вызывать ? Или как std::map пользоваться ? Или как инкремент делать ?
0
|
0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 156
|
|
02.06.2020, 00:15 [ТС] | 7 |
Алексей1153, вот если я сделаю сессия, то как определенному человеку отправить смс?
0
|
фрилансер
5503 / 5098 / 1048
Регистрация: 11.10.2019
Сообщений: 13,358
|
|||||||||||
02.06.2020, 00:29 | 9 | ||||||||||
упрощённо, у тебя имеется переменная такого типа
в этой мапе делаешь ищешь логин, там же будет и сокет если делать всё упрощённо, то достаточно будет и так
1
|
0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 156
|
|
02.06.2020, 00:31 [ТС] | 10 |
Алексей1153, спасибо
0
|
02.06.2020, 00:31 | |
02.06.2020, 00:31 | |
Помогаю со студенческими работами здесь
10
Чат клиент-сервер на сокетах Чат на сокетах Чат на сокетах Чат на сокетах Чат на сокетах Чат на сокетах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |