![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| blazhko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.12.2007 Репутация: нет Всего: нет |
Привет! Я хочу реализовать отправку сообщений с TServerSocket определенной группе клиентов. Т.е. при подключении ник клиента добавляется в CheckListBox, помечаем потом несколько клиентов и отправляем им сообщения.
Пробовал реализовать так,но выдает ошибку:
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
текст ошибки, значения, конечно, не имеет.... Приведи полный текст ошибки, и где (на какой строчке) возникает. На первый взгляд могу сказать только: заменить на
Добавлено через 1 минуту и 54 секунды на второй взгляд: а что ты будешь делать, если клиент отправляет "12345", а на сервер приходит сперва "123" а потом "45" (это более чем возможная ситуация). ??? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
И на третий взгляд:
1. массив UserMas - лишний. Для хранения информации о пользователе лучше воспользоваться свойством Data, присутствующем в Socket, обслуживающем соединение (т.е. в ServerSocket.Socket.Connections[i].Data). В это свойство легко "запихиваются" как записи, так и объекты. Единственное, на что стоит обратить внимание - создание и своевременное уничтожение этих данных. 2. Зачем хранить в UserMas хендлы сокетов, если они и так имеются в TCustomWinSocket? Тем более, что статический массив не обеспечивает правильной работы с сокетами. Как пример: есть пользователи 1, 2, 3. Пользователь 2 отключился. В ServerSocket остались пользователи 1 (как и раньше - с индексом 0) и 3 (был с индексом №2, теперь с индексом №1). Потом пользователь 2 опять подключился. И в ServerSocket теперь порядок пользователей - 1, 3, 2. Эту ситуацию со статическим массивом обрабатывать несколько неудобно. |
|||
|
||||
| blazhko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.12.2007 Репутация: нет Всего: нет |
Ошибка : List index out of bounds (1)
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
||||
|
||||
| blazhko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.12.2007 Репутация: нет Всего: нет |
Да когда приходит сообщение с данными клиента.
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
Может, все-таки ответишь на мой вопрос? На. Какой. Строке. Кода. Вываливается. Ошибка. Добавлено через 5 минут и 46 секунд Ладно, не буду долго мучить. На будущее совет - если на форуме спрашивают что-то (для того, чтобы понять где и в чем скрылась ошибка), нужно отвечать по существу и полностью на поставленный вопрос. Ошибка у тебя в коде скрылась здесь: Индексация соединений у ServerSocket начинается с 0, а не с 1. И лучше сразу приучить себя всё нумеровать с нуля - легче будет потом. Поэтому правильный код для ServerSocket1ClientRead будет
Добавлено через 8 минут и 47 секунд И на всякий случай - перечитай мои предыдущие сообщения, бо логика, которую ты закладываешь в программу годится только для несложных тестовых примеров. Если собираешься сделать рабочую программу, то лучше сразу стараться сделать ее правильно. хотя о чем это я - сам несколько лет назад делал сетевое приложение, считая его код идеальным. Сейчас даже боюсь смотреть на его исходники - инфаркт хватит... |
|||
|
||||
| blazhko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 12.12.2007 Репутация: нет Всего: нет |
Спасибо огромное!=)
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |