|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.02.2011, 21:04 | #1 |
Форумчанин
Регистрация: 17.08.2009
Сообщений: 139
|
Вопрос по сокетам
Доброе время суток!
Есть клиент/сервер, пересылка сообщений туда/сюда работает нормально, но вот вопрос если я запускаю несколько клиентов то как серверу определить с какого клиента читать сообщение? То есть " i " Код:
Код:
Но я считаю это неверно н/р у меня 100000 клиентов то сервер просто захлебнется. |
26.02.2011, 12:31 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
На сколько я помню, вы не сами должны читать, а ждать OnClientRead(), в нём параметр Socket: TCustomWinSocket и укажет, с какого клиента пришли данные.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
26.02.2011, 15:43 | #3 | |
Форумчанин
Регистрация: 17.08.2009
Сообщений: 139
|
Цитата:
Код:
В случае же с сервером такая ботва не проходит, дабы прочитать полученное сообщение нужно указать индекс подключения (то самое "i"): Код:
Случай такой из пачки клиентов один присылает сообщение и вместо того чтобы лопатить всех активных клиентов нужно указать индекс того который прислал данные. Последний раз редактировалось Replicant; 26.02.2011 в 15:46. |
|
26.02.2011, 16:27 | #4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> дабы прочитать полученное сообщение нужно указать индекс подключения
честно говоря, никогда с этими классами не работал, но выглядит это более чем странно. Почему нельзя читать прямо из переданного сокета? Зачем вобще там сокет передаётся по-вашему, для красоты? Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
26.02.2011, 16:53 | #5 |
DelphiProger
Участник клуба
Регистрация: 14.11.2010
Сообщений: 1,023
|
а если клиент не подключен, как потом Serverу послать?
как я понимаю, ето сохранить даные и проверять когда он будетв сети послать, но как потом определить что ето он? вот для чего я в теме спрашивал про IP, к Clientaм ведь можно обрашаться так?
VirusN13
|
26.02.2011, 16:59 | #6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
создайте новую тему, или расширьте свою, там отвечу, а тут оффтопить не буду.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
26.02.2011, 17:05 | #7 | |
Форумчанин
Регистрация: 17.08.2009
Сообщений: 139
|
Цитата:
Указываешь индекс подключения и ошибки пропадают! Последний раз редактировалось Replicant; 26.02.2011 в 17:11. |
|
26.02.2011, 17:29 | #8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Че-то у вас не то с клиентом или сервером.
Вот простейший код, который работает как и должен работать. Т.е. принимает сообщения от обоих клиентов без всяких индексов. Проверял в Delphi 7, а у вас какая? Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите, пожалуйста, по сокетам | _Инженер_ | Работа с сетью в Delphi | 7 | 02.10.2009 17:11 |
Вопрос по сокетам | Garacio_cain | Работа с сетью в Delphi | 17 | 29.12.2008 17:22 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |
прередача по сокетам | geronime | Работа с сетью в Delphi | 0 | 22.12.2007 11:27 |