![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#21 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
И если есть возможность прикрепи сюда свой проект.
I'm learning to live...
Последний раз редактировалось Stilet; 28.06.2011 в 10:48. |
||
![]() |
![]() |
#22 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
Надо просто понять что флаг FD_CONNECT в наборе флагов нотификационного сообщении WinSock-подсистемы о событиях гнезда не обязан в обязательном порядке сопровождаться установленным флагом FD_WRITE (хотя обычно эти два флага на момент извещения о коннекте взведены). И поняв это не советовать более заведомо ошибочную логику реакции на соотв.события дельфийских компонентов - попытка отправки сообщения прямо в обработчике OnConnect при некоторых условиях рано или поздно приведет к отказу. |
|
![]() |
![]() |
#23 |
Evil is near...
Пользователь
Регистрация: 08.03.2009
Сообщений: 49
|
![]()
есть 2 компонента:
1) ServerSocket (в дальнейшем server) 2) ClientSocket (в дальнейшем client) Вот примерная работа сервера: \\Запуск сервера\\ server.port:=7770; server.active:=true; server.open; \\Обработка события на онлайн\\ \\Так как в актив коннекшонс при подключении добавляется 2 значения, не знаю почему, то я его уменьшал\\ sLabel1.Caption:=IntToStr(server.so cket.activeconnections div 2); if (server.socket.actioveconnections>0 ) then Button1.Enabled:=True else Button1.Enabled:=False; \\Отправка сообщения от сервера клиенту через процедуру onWrite\\ mes:=sMemo1.Text; server.socket.connections[1].sendtext(mes); \\1 - это мы, а так, если абстрактно у него нумерация с 0 начинается. \\Коннект клиента к серверу\\ client.port:=7770; client.address:=127.0.0.1; client.active:=True; client.open; \\Получение клиентом сообщение от сервера\\ В онклиентрид mes:=client.socket.recievetext; sMemo1.Text:=sMemo1.Text+#13#10+mes ; Потом я добавил в клиент приложение сервер сокет с новым портом 7780, а в сервер приложение я добавил клиент сокет настроенный на 7780. Взаимо подключался по очереди и клиентом-сервером и сервером-клиентом. В актив коннекшонс у обоих приложений указывались значения, на то, что к ним кто то подключился и в данный момент подключен. Но при добавлений этих новых 2х сокетов по разным приложениям, перестала работать первая отправка от сервера к клиенту, и в итоге вообще не отправляется и не принимается ничего. Я не дома, поэтому доступа к исходникам у меня сейчас нет. Текст я проги знаю на зубок, поэтому отписал тут.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова, В какое место вставить True я не скажу Последний раз редактировалось rule-z; 28.06.2011 в 16:59. |
![]() |
![]() |
#24 | ||||||
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
Цитата:
Нет такого события у сервера. Цитата:
Цитата:
Цитата:
Добавь еще пару дюжин - авось заработает))) К чему бездумно следовать абсолютно бестолковым советам, по кр.мере в данном рассматриваемом случае ? Голова на плечах долна быть своя) Цитата:
"Мы" это или "не мы" - это легко выясняется прямо в контексте любого из обработчиков любого из событий сервера OnClientConnect/Disconnect/Read/Write: вторым параметром передается ссылка на объект-сокет, у которого есть св-ва RemoteHost и RemotePort. Он же, этот самый объект фигурирует одним из элементов списка ActiveConnections, вплоть до момента завершения обработки события OnClientDisconnect для соответствующего клиента. |
||||||
![]() |
![]() |
#25 | |
Evil is near...
Пользователь
Регистрация: 08.03.2009
Сообщений: 49
|
![]() Цитата:
Про онврайт пардон отправлял через кнопку. Про connections[1] я проверял разные параметры. Если не выполнять slabel1.caption:=inttostr(server.so cket.activeconnections div 2); то при подключении, мы видим цифру 2. Если в отправке в коннекшонс поставить 2, то выскачит ошибка лист аут оф боундс, если поставить 1 то ничего не происходит, если поставить 0 то выскакивала ошибка 10061. Я конечно далек от совершенства, но замутить счетчик онлайна через активконнекшонс, наверное любой дурак бы додумался, но вы про него не знаете, я в шоке.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова, В какое место вставить True я не скажу |
|
![]() |
![]() |
#26 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
Что ж ты такой баран-то тупорылый ?) Тебе про фому - ты всё про ерему гнешь. |
|
![]() |
![]() |
#27 | |
Evil is near...
Пользователь
Регистрация: 08.03.2009
Сообщений: 49
|
![]() Цитата:
Всем спасибо, в помощи ТАКИХ же как и мсс индивидумов, я не нуждаюсь больше.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова, В какое место вставить True я не скажу Последний раз редактировалось rule-z; 28.06.2011 в 21:06. |
|
![]() |
![]() |
#28 | ||
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
Цитата:
Тебе русским языком сказано - выясни кому ты отправляешь сообщения с использованием св-в RemoteHost и RemotePort. |
||
![]() |
![]() |
#29 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
[QUOTE[Событие ты создаешь сам, обрабатывая код if (server.socket.activeconnections<>0 )
[/QUOTE] Бредятина несусветная. Никаким "созданием события" при этом даже не пахнет. Бегом дуй штудироватьь учебники и справочную литературу, кулибин ! |
![]() |
![]() |
#30 |
Evil is near...
Пользователь
Регистрация: 08.03.2009
Сообщений: 49
|
![]()
Посуди сам. В activeconnections, даже если логически подумать, заносятся активные на данный момент подключения. Если там написало, что с 0 подключенных прыгнуло на 1, то кто то подключился. =>я подключился.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова, В какое место вставить True я не скажу |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ClientSocket | AlexJan | Компоненты Delphi | 5 | 12.09.2010 08:08 |
ClientSocket | misher | Общие вопросы Delphi | 2 | 09.07.2010 15:55 |
ClientSocket и ServerSocket | Blood o men | Работа с сетью в Delphi | 2 | 25.11.2009 11:36 |
ClientSocket и TimeOut | Powerfull100 | Работа с сетью в Delphi | 0 | 22.10.2009 12:29 |
Проблема с ClientSocket | Shouldercannon | Работа с сетью в Delphi | 1 | 23.03.2009 14:45 |