Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.06.2011, 10:45   #21
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Какие тут могут быть "имхи" ?)
Фу. Даже спорить с тобой не буду. Бесполезно...
Цитата:
Теперь мессаги просто банально не доходят...
Кстати насчет файерволла проверь. У меня его попускать иногда нужно.
И если есть возможность прикрепи сюда свой проект.
I'm learning to live...

Последний раз редактировалось Stilet; 28.06.2011 в 10:48.
Stilet вне форума
Старый 28.06.2011, 11:29   #22
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
Даже спорить с тобой не буду
А и не надо спорить)

Надо просто понять что флаг FD_CONNECT в наборе флагов нотификационного сообщении WinSock-подсистемы о событиях гнезда не обязан в обязательном порядке сопровождаться установленным флагом FD_WRITE (хотя обычно эти два флага на момент извещения о коннекте взведены).

И поняв это не советовать более заведомо ошибочную логику реакции на соотв.события дельфийских компонентов - попытка отправки сообщения прямо в обработчике OnConnect при некоторых условиях рано или поздно приведет к отказу.
mss вне форума
Старый 28.06.2011, 16:56   #23
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 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.
rule-z вне форума
Старый 28.06.2011, 17:25   #24
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
server.active:=true;
server.open; // это на всякий случай ?) для пущей уверенности ?) чтобы уж наверняка ?))

client.active:=True;
client.open; // и это тоже ?))))
Цитата:
Обработка события на онлайн
Это еще что за зверь ?
Нет такого события у сервера.

Цитата:
\\Отправка сообщения от сервера клиенту через процедуру onWrite
какую такую "процедуру onWrite" ? что значит "через" ?

Цитата:
server.socket.connections[1].sendtext(mes)
sendtext - это функциональный метод, он возвращает результат, по которому можно судить об успехе отправки. Соизволь проштудировать справку к этому методу.

Цитата:
Потом я добавил в клиент приложение сервер сокет .., а в сервер приложение я добавил клиент сокет ..
Что-то ты маловато их понадобавлял)
Добавь еще пару дюжин - авось заработает)))

К чему бездумно следовать абсолютно бестолковым советам, по кр.мере в данном рассматриваемом случае ?
Голова на плечах долна быть своя)

Цитата:
\\1 - это мы
Значит "это не мы", раз сообщения успешно отправлены и до "нас" не дошли)

"Мы" это или "не мы" - это легко выясняется прямо в контексте любого из обработчиков любого из событий сервера OnClientConnect/Disconnect/Read/Write: вторым параметром передается ссылка на объект-сокет, у которого есть св-ва RemoteHost и RemotePort.
Он же, этот самый объект фигурирует одним из элементов списка ActiveConnections, вплоть до момента завершения обработки события OnClientDisconnect для соответствующего клиента.
mss вне форума
Старый 28.06.2011, 18:44   #25
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Это еще что за зверь ?
Нет такого события у сервера.



какую такую "процедуру onWrite" ? что значит "через" ?



sendtext - это функциональный метод, он возвращает результат, по которому можно судить об успехе отправки. Соизволь проштудировать справку к этому методу.



Что-то ты маловато их понадобавлял)
Добавь еще пару дюжин - авось заработает)))

К чему бездумно следовать абсолютно бестолковым советам, по кр.мере в данном рассматриваемом случае ?
Голова на плечах долна быть своя)



Значит "это не мы", раз сообщения успешно отправлены и до "нас" не дошли)

"Мы" это или "не мы" - это легко выясняется прямо в контексте любого из обработчиков любого из событий сервера OnClientConnect/Disconnect/Read/Write: вторым параметром передается ссылка на объект-сокет, у которого есть св-ва RemoteHost и RemotePort.
Он же, этот самый объект фигурирует одним из элементов списка ActiveConnections, вплоть до момента завершения обработки события OnClientDisconnect для соответствующего клиента.
Событие ты создаешь сам, обрабатывая код if (server.socket.activeconnections<>0 )

Про онврайт пардон отправлял через кнопку.

Про connections[1] я проверял разные параметры. Если не выполнять slabel1.caption:=inttostr(server.so cket.activeconnections div 2); то при подключении, мы видим цифру 2. Если в отправке в коннекшонс поставить 2, то выскачит ошибка лист аут оф боундс, если поставить 1 то ничего не происходит, если поставить 0 то выскакивала ошибка 10061.
Я конечно далек от совершенства, но замутить счетчик онлайна через активконнекшонс, наверное любой дурак бы додумался, но вы про него не знаете, я в шоке.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу
rule-z вне форума
Старый 28.06.2011, 20:38   #26
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
замутить счетчик онлайна через активконнекшонс, наверное любой дурак бы додумался, но вы про него не знаете, я в шоке
Мдя ..

Что ж ты такой баран-то тупорылый ?)

Тебе про фому - ты всё про ерему гнешь.
mss вне форума
Старый 28.06.2011, 20:59   #27
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Мдя ..

Что ж ты такой баран-то тупорылый ?)

Тебе про фому - ты всё про ерему гнешь.
Слушай меня. То, чем ты меня обозвал, ты видешь каждое утро в зеркале. Если ты не понимаешь, о чем я веду речь, сойди с дороги и проваливай. Я обратился на данный форум с помощью, а не для того, чтобы мне говорили такое...

Всем спасибо, в помощи ТАКИХ же как и мсс индивидумов, я не нуждаюсь больше.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу

Последний раз редактировалось rule-z; 28.06.2011 в 21:06.
rule-z вне форума
Старый 28.06.2011, 21:14   #28
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
я тебе про коннект
ГДЕ, дурень, в КАКОМ своем посте ты хоть словом обмолвился что ты обрабатываешь событие OnClieтtConnect ?)))

Цитата:
Если ты не понимаешь, о чем я веду речь
Ты ее ведешь НИ О ЧЕМ.
Тебе русским языком сказано - выясни кому ты отправляешь сообщения с использованием св-в RemoteHost и RemotePort.
mss вне форума
Старый 28.06.2011, 21:18   #29
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

[QUOTE[Событие ты создаешь сам, обрабатывая код if (server.socket.activeconnections<>0 )
[/QUOTE]

Бредятина несусветная.
Никаким "созданием события" при этом даже не пахнет.
Бегом дуй штудироватьь учебники и справочную литературу, кулибин !
mss вне форума
Старый 28.06.2011, 21:19   #30
rule-z
Evil is near...
Пользователь
 
Аватар для rule-z
 
Регистрация: 08.03.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
ГДЕ, дурень, в КАКОМ своем посте ты хоть словом обмолвился что ты обрабатываешь событие OnClieтtConnect ?)))



Ты ее ведешь НИ О ЧЕМ.
Тебе русским языком сказано - выясни кому ты отправляешь сообщения с использованием св-в RemoteHost и RemotePort.
Посуди сам. В activeconnections, даже если логически подумать, заносятся активные на данный момент подключения. Если там написало, что с 0 подключенных прыгнуло на 1, то кто то подключился. =>я подключился.
Программный код всего лишь слово, На свойстве Speak, я False пропишу.
Но помни, когда говорить захочешь снова,
В какое место вставить True я не скажу
rule-z вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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