Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Вниз

Сеть в консоле   Найти похожие ветки 

 
mktl   (2003-10-16 17:33) [0]

Народ!
Подскажите, пожалуйста, как в консольном приложении работать с сетью???


 
KDS   (2003-10-16 19:11) [1]

Создавать компоненты не в дизайн тайм, а в рантайм
типа
......
var ClientSocket1:TClientSocket;
........

try
ClientSocket1:=TClientSocket.Create(nil);
ClientSocket1.Host:=
Host.Address:=
....
finally
ClientSocket1.Free;
end;


 
Digitman   (2003-10-17 13:29) [2]


> как в консольном приложении


точно так же как и в любом другом


 
mktl   (2003-10-21 09:27) [3]

Извините, может я сморожу глупость, а как обрабатывать события подключения и т.п. в консольном приложении?


 
Digitman   (2003-10-21 10:03) [4]

в ран-тайм программно назначь событиям OnConnect() и OnError() процедуры обработки, являющиеся соответствующими допустимыми методами любого существующего объекта

TMyObject = class
...
procedure OnConnect(Sender: TObject; Socket: TCustomWinSocket);
...
end;

...

var MyObject: TObject; Msg: TMsg;

...

MyClientSocket.OnConnect := MyObject.OnConnect;
MyClientSocket.Open;

while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;


 
mktl   (2003-10-22 11:25) [5]

Спасибо, помогло.
А как обработать события клавиатуры???


 
Digitman   (2003-10-22 12:08) [6]


> mktl


при старте приложения создай доп.код.поток

в нем создавай гнездо, настраивай его как тебе нужно, вызывай метод коннекта и далее - цикл обработки сообщений

после создания доп.код.потока работай с конс.вводом/выводом как обычно - Readln/writeln и т.д. и т.п.

при завершении конс.приложения сначала корректно терминируй доп.код.поток (если он еще работает на этот момент) и дождись его завершения


 
mktl   (2003-10-22 13:49) [7]

А что делать, есл мне нужно считывать по одному символу, или коду?? Возможно ли позиционирование курсора в окне консоле, изменение цвета, считывание данных с экрана и т.п.??


 
Digitman   (2003-10-22 14:24) [8]


> А что делать, есл мне нужно считывать по одному символу,
> или коду?? Возможно ли позиционирование курсора в окне консоле,
> изменение цвета, считывание данных с экрана и т.п.??


А какое отношение имеет все это к теме изначально заданного вопроса ? Работа с конс.приложением и его ресурсами - это одна отдельная тема, а работа с сетью и сет.ресурсами - совершенно другая, никак не касающаяся системных механизмов работы с консолью...

пересекаются эти две темы лишь в одном : если работа с Winsock-объектами организована с использованием неблок.асинхр.режима с использованием механизма оконных нотификаций о событиях сетев.тренспорта (этот режим и механизм по умолчанию устанавливается при создании VCL-объектов TServerSocket/TClientSocket), то при организации такой работы в консольном приложении требуется явная организация цикла выборки/диспетчеризации оконных сообщений в том кодовом потоке, который создает Winsock-объект[ы]


 
mktl   (2003-10-22 16:55) [9]

Сперва у меня была главной проблемой коннект из консольного окна к серверу. Эту проблему я решил с вашей помощью, а теперь я столкнулся с тем, что мне необходимо считывать с клавиатуры по одному символу, а так же управлять цветом символов на экране и т. п.
Я согласен с Digitman-ом, что это уже не относится к сети... Но как продолжение темы я здесь и писал...
А где ещё можно найти подобную информацию??


 
Digitman   (2003-10-22 17:00) [10]


> где ещё можно найти подобную информацию??


msdn.microsoft.com


 
Polevi   (2003-10-22 17:00) [11]

Win32 programmer"s reference / Console function


 
Digitman   (2003-10-22 17:07) [12]


> mktl


объясни, чем вообще обоснован выбор тобой именно консольного, а не GUI- приложения


 
mktl   (2003-10-22 17:21) [13]

Выбор обосновывается тем, что необходимо написать эмулятор терминала с нестандартной системой команд. Через GUI что-то тормозит прорисовка символов (а ожет я тормозил когда писал), пробовал через TDXForm-там не смог использовать некоторые нестандартные шрифты... Решил попробовать в консольном режиме...


 
Digitman   (2003-10-22 17:26) [14]


> необходимо написать эмулятор терминала


обычный TMemo в обычном GUI-приложении справляется с задачей визуализации "терминальной консоли" ничуть не хуже , чем консольное окно в конс.приложении


> Через GUI что-то тормозит прорисовка символов


значит, алгоритм твой некорректен


 
mktl   (2003-10-22 17:31) [15]

согласен, что алгоритм пересмотреть нужно...
А MEMO не подходит, так как там есть позиционирование курсора и установка цвета на различные символы...


 
Digitman   (2003-10-22 17:38) [16]

в TMemo позиц-е курсора есть
если нужно работать с цветом, то - TRichEdit


 
mktl   (2003-10-22 17:48) [17]

Спасибо. :)
Попробую в TRichEdite Менять цвета отдельных символов.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.008 c
1-52204
mRodion
2003-12-04 15:54
2003.12.16
И все таки: как отслеживать нажатие клавиш в MDI-форме


7-52413
Delphi5.01
2003-10-11 20:13
2003.12.16
Формат СД-Рома


1-52166
vvv2002
2003-12-03 15:27
2003.12.16
Работа со строками


1-52151
Mishenka
2003-12-03 20:52
2003.12.16
Можно ли OpenDialog использовать для каталогов?


1-52241
Antonn
2003-12-05 14:44
2003.12.16
ListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский