Главная страница


ru.nethack

 
 - RU.NETHACK -------------------------------------------------------------------
 From : Alexandr Pristenski                  2:5020/400     28 Sep 2003  23:11:44
 To : Dmitry Lipovoi
 Subject : Re: remote shell win32
 -------------------------------------------------------------------------------- 
 
 
 Dmitry Lipovoi <Dmitry.Lipovoi@p17.f231.n5000.z2.fidonet.org> пишет в
 сообщении:1064486327@p17.f231.n5000.z2.ftn...
 
 > Hi Alexandr.
 >     В linux'е это делается так:
 >
 >     Есть функция dup2(int h1, int h1) -- если кратко, дублировать file
 > descriptor h1 в h2. Если открыть соединение, а потом выполнить
 >
 >     dup2(s, 0);
 >     dup2(s, 1);
 >
 >     то послеующие вызовы печати на экран, чения с клавиатуры будут
 > перенаправляться на сокет s. Так как в *nix-like OS файловые дескрипторы
 > потомков наследуются, то можно сделать стандартную связку fork+exec для
 > пораждения потомка (первый параметр exec должын быть равен "/usr/bin/sh",
 
 ну
 
 > или другому шеллу).
 >
 >     В windows, я полагаю, процесс должен быть схожим.
 
     Только что-то не получается... По идее этот кусок кода должен всё, что
 идёт скажем с приконнектившегося телнета эхом отправлять обратно:
 
 if(listen(listen_socket, 5) == SOCKET_ERROR) exit(-1);
 
 while((server_socket = accept(listen_socket, (struct sockaddr *)temp_addr,
 (int *)&accepted_len)) != INVALID_SOCKET)
 {
         dup2(server_socket, 0);
         dup2(server_socket, 1);
 
         for(;;)
         {
             key = getc(stdin);
             putc(key, stdout);
         }
 }
 
 А вот не биндит он server_socket к STDIN/STDOUT и всё тут. dup2 возвращает
 "-1", т.е. error... Вообще под виндой можно ли так:
 dup2(socket, 0)? Под линухом всё пашет отлично...
 
 WTBR,
 Alexandr S. Pristenski.
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: remote shell win32   Alexandr Pristenski   28 Sep 2003 23:11:44 
Архивное /ru.nethack/6577a5d0d2c1.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional