Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.16;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
6-52304
lasso
2003-10-21 10:32
2003.12.16
ping


1-52271
Альф
2003-12-03 17:14
2003.12.16
Странное поведение TabControl


3-52116
dimablind
2003-11-23 20:57
2003.12.16
Работа с датами


1-52259
lipskiy
2003-12-04 13:09
2003.12.16
Как быстро и наиболее корректно выгрузить приложение?


1-52223
DeScriptor
2003-12-05 08:02
2003.12.16
TThread...