![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TServerSocket в консольном приложении (типа, без форм) [D5, D7, Win95/98, WinXP]
maxistent © (2004-09-20 17:28:00)Уважаемые Мастера и все кто здесь! Не погёте ли мне с вопросом: надо написать консольное приложение с использованием TServerSocket (коннектить, читать клиентов, писать им). Надо бы мне прогу без форм, но с TServerSocket. Как это замудрить? Можь у кого код (или его часть) есть, а?
kaZaNoVa (2004-10-02 19:13:00) [21]maxistent © (02.10.04 9:18) [45]
ага .. Гы .. :)
maxistent (2004-10-02 09:18:00) [22]короче, оффтоп... :)
DHDD (2004-10-02 05:48:00) [23]Лучше не используй T...Socket. Он параллельный, нужно писать алгоритм проверки CRC, и то он поможет ~ на 60%. Лучше используй Indy: TidSocket,TidClient - он последовательный с Thread'ом, ошибок не бывает. (Indy - Internet Direct)
Для начала возьми пример в Demos для Indy, отладь на работоспособность, а потом локализуй до проекта без unit'ов.
Если будут проблемы локализации - задавай новый вопрос: этот тебе уже понаотвечали.
VMcL (2004-10-02 05:23:00) [24]>> maxistent © (01.10.04 16:50) [38]
Ты либо глупец, либо...
На этом мысль останавливается.
Verg (2004-10-02 00:23:00) [25]Все, я устал...
kaZaNoVa (2004-10-01 22:44:00) [26]maxistent © (01.10.04 16:53) [39]
ну, как, работает ?
Digitman (2004-10-01 17:17:00) [27]
> maxistent © (01.10.04 16:50) [38]
ты чего размлякался, а ?! Детский сад ?
ты думать головой намерен вообще или нет ? или не головой ? или не думать ?
Мухой в scktcomp.pas !
Читать текст класса TServerSocket до полного просветления !
Убедиться, что в ходе исполнения метода TServerSocket.Open создается окно , принимающее нотификационные сообщения гнезда о событиях транспорта !
Все !
Работай самостоятельно ! Голова дана не для пожирания пива !
maxistent (2004-10-01 16:53:00) [28]...пардон за ошибку во втором слове: НИКАКИХи слово ЧТОперед ЗАКОННЕКТИЛСЯ:)
maxistent (2004-10-01 16:50:00) [29]мля! накаких окнОВ-адресатов нет! Моя задача написать прогу, которая САМА должна определить, что законнектился ли клиент. Затем передать пару-тройку стрингов (типа, команд) и, наконец, потом "сидеть" и читать то, что приходит от клиента. В зависимости от принятого текста выполнять к.л. действия.
Digitman (2004-10-01 11:19:00) [30]
> maxistent © (01.10.04 11:08) [36]
в дан.случае - никакие.
если того не требуют доп.условия в постановке задачи, то это не твоя забота - Dispatchmessage() самостоятельно "раздаст" сообщения окнам-адресатам
maxistent (2004-10-01 11:08:00) [31]вникнул. какие сообщения принимать от GetMessage? ИМЕННО ЭТОГО-ТО Я И НЕ ЗНАЮ!!! :)
Digitman (2004-10-01 08:52:00) [32]
> maxistent © (30.09.04 17:43) [33]
ты не флуди, а вникни в [29]
kaZaNoVa (2004-09-30 19:02:00) [33]maxistent © (30.09.04 17:43) [33]
;))))))))))))
maxistent (2004-09-30 17:43:00) [34]Да Вы чё, с дубу рухнули?! Какие виропись трояноподобная?! Люди! Если здесь таковые имеются! Будьте человеками, а!..
kaZaNoVa (2004-09-29 13:26:00) [35]Digitman © (29.09.04 8:19) [31]
нет .. так вирусы не пишут ...
- имхо что-то трояноподобное ..
Digitman (2004-09-29 08:19:00) [36]
> Polevi © (28.09.04 17:01) [30]
виропись, хочешь сказать ?)
Polevi (2004-09-28 17:01:00) [37]>Digitman © (28.09.04 13:43) [29]
думаю его пользовательский ввод с консоли мало волнует :)
Digitman (2004-09-28 13:43:00) [38]
> КАК НАПИСАТЬ
как, как) ... чего ты раскричался-то ? кАком кверху ! ... известно как - головой и руками ...
> ЧТОБЫ ПРОГА МОГЛА ХОТЯ БЫ ПОКАЗАТЬ MessageBox
да нашута, скажи на милость, нужна консоль, если ты все равно намерен GUI использовать ? в виде хотя бы того же MessageBox ? ведь весь смысл использования консоли в этом случае пропадает !
> клиенты-то коннектются, а сервер об етом не знаеть
> здесь ставлю какой-нить цикл и сервак пашет
вот ты сам себе на вопрос и ответил - цикл нужен
тебе об этом еще Polevi © (23.09.04 12:54) [10] сказал
а цикл-то этот прост до безобразия
var
Msg: TMsg;
while GetMessage(Msg, 0, 0, 0) do
DispatchMessage(Msg);
только вот консоль твоя на польз.ввод при этом реагировать не будет, да и сам цикл будет бесконечным
решение здесь тоже простое - при старте консоли создать доп.трэд, который, собственно, и будет создавать/уничтожать серв.компонент и работать с его событиями (цикл этот и в случае доп.трэда обязателен к реализации), после старта трэда "висеть", например, на readln, чтобы по команде юзера можно было терминировать созданный трэд (и, соотв-но, завершить работу серв.компонента)
maxistent (2004-09-28 13:29:00) [39]оп!.. ещё и глюк какой-то хапнул :) хе... не уж то я два разочка-то клинул <Добавить>? гм... а два и не получилось бы...
maxistent (2004-09-28 13:26:00) [40]эт уж точно издевательство!!! КОНКРЕТНЫЙ ВОПРОС: КАК НАПИСАТЬ КОНСОЛЬНОЕ ПРИЛОЖЕНИЕ c TServerSocket, ЧТОБЫ ПРОГА МОГЛА ХОТЯ БЫ ПОКАЗАТЬ MessageBox С АДРЕСОМ КЛИЕНТА ИЛИ ПРИНЯТЫМ ТЕКСТОМ? Я деляю что-то вроде:
uses SockComp;{или типа того...}
var
s1:TServerSocket;
begin
s1:=TServerSocket.Create(nil);
s1.port:=1234;
s1.Active:=true;
{потом ещё что-то было - не помню...}
{здесь ставлю какой-нить цикл и сервак пашет...}
end.
клиенты-то коннектются, а сервер об етом не знаеть!!! Как быть? или не быть, а? Вы ж, блин, мастера или нет? Подмогните :) ...