Консольное приложение и сокеты
Как создать клиента (сокет) из консольного приложения, используя например TClientSocket
Сделай модуль в котором будет объект(напр. TPapa) от TComponent.В нем cделай процедуры, которые будут обработчиками событий твоего сокета.
В dpr надо сделать так:
var
cs: TClientSocket;
Papa: TPapa;
begin
Papa := TPapa.Create;
cs := TClientSocket.Create(nil);
cs.Port := ...;
//Вобщем прописываешь поля какие надо
//ну и обработчики прикручиваешь
cs.OnConnect := Papa.MyConnect;
...
//делаешь цикл для сообщений Винды
while GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;
end.
Компили и наслаждайся. У меня подобная прога получилась 150к на Делфи5.
а как сделать обработку нажатия кнопок на клаве помимо Read() не знаю .. а Read тормозит соотв-но передачу и прием сообщений ....
КАК >> если можно примерчик ...
var
Cons: TConsClientSocket;
s: string;
hWnd: THandle;
Msg: TMsg;
begin
hWnd := CreateWindow(sClassName, '', WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, 0, 0, hInstance, NIL);
Cons := TConsClientSocket.Create(nil);
with Cons do begin
ClientType := ctNonBlocking;
Port := 1212;
Address := '10.54.0.51';
Active := True;
end;
while GetMessage(Msg, HWnd, 0, 0) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
if UpperCase(s) = 'EXIT' then begin
Readln(s);
Break
end else //Cons.Socket.SendText(sc_MSG + s);
end;
Halt(Msg.wParam);
end.
Дабы не загружать сервак и форум можешь писать на [email]mwolf@rambler.ru[/email] . Насчёт вопроса, чесно говоря, не понял, что собсно говоря надо то. Моя прога была чё то типа сервиса, и с клавой не работала. Объясни, что ты собираешься сделать.
А так, могу лишь порекомендовать ставить серверный сокет на поток(или многопоточным сделать), тады моно будет сделать, чтоб клавой что-то вправлять в процесе работы.