⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vcc13.htm

📁 SHELL排序算法与应用
💻 HTM
📖 第 1 页 / 共 2 页
字号:
_FLAG_PASSIVE,0);
   FtpDeleteFile(hHost,cFile);
  InternetCloseHandle(hHost);InternetCloseHandle(hInternet);
  return TRUE;
}
// 本 地 计 算 机 运 行 线 程 函 数 pp 功 能 代 码
void CallThread(void * pp )
{
   DWORD * dwId,dwLen, ret,ll;
   RASPPPIP rip;
   char szIp[50], *pdest;
   dwId=(DWORD *)pp;
   switch( * dwId )
   {
	case IDC_CALL:
  // 通 知 远 程 计 算 机 登 录Internet
  ShowMsg(hWin,“Call remote... ");
  if ( StartCon( hWin,“connect",“",
  “d123",“9W7607714" ) == TRUE )
  {
    ShowMsg(hWin,“Remote Connected");
    // 取remote 分 配 的IP 地 址
    rip.dwSize=sizeof(RASPPPIP);	
        if ( (ret=RasGetProjectionInfo(hCon,RASP_PppIp,
(LPVOID) &rip,(LPDWORD) &ll ) ) != 0 )
		ShowMsg(hWin,“ 取IP 地 址 失 败");
	    else
	    {
		ShowMsg(hWin,rip.szIpAddress);	
		strcpy(szIp,rip.szIpAddress);
		pdest=strrchr(szIp,‘.');
		 *pdest=‘\0';strcat(szIp,“.1");
		ShowMsg(hWin,szIp);
		SendCmd(szIp,“REQUEST");
	    }
	    RasHangUp(hCon);
	}
	else
	    ShowMsg(hWin,“Call remote fail");
	hCon=NULL;
 	break;
case IDC_INTERNET:
 // 本 地 计 算 机 登 录Internet
	ShowMsg(hWin,“ 正 在 连 接 Internet... ");
	StartCon( hWin,“internet",“local@pub2.fz.fj.cn",
   “aabb99",“9W163" );
	break;
case IDC_ADDRESS:
 // 读 取 远 程 计 算 机Internet IP 地 址
        ShowMsg(hWin,“ 正 在 取 IP 地 址...");
        if ( (dwLen=FtpWriteRead(“ftp.maoming.gd.cn",
       “abc.txt",40,cRemoteIP,1))>0 )
        {
         cRemoteIP[dwLen]=‘\0';ShowMsg(hWin,cRemoteIP);
         ShowMsg(hWin,“ 删 除IP 地 址 文 件..");
         MyFtpDeleteFile(“ftp.maoming.gd.cn",“abc.txt");
       }
       else
	ShowMsg(hWin,“ 取IP 失 败");
       break;
  case IDC_RDISC:
 // 通 知 远 程 计 算 机 断 开Internet 连 接
      ShowMsg(hWin,“ 正 在 向 远 端 发 Disconnect...");
      SendCmd(cRemoteIP,“DISCONNECT");
      break;
  }
  ThreadId=0;hThread=NULL;
  return;
}
// 远 程 计 算 机 运 行 线 程 函 数
void ServerThread(void * pp )
{
  RASPPPIP rip;
  DWORD	ret,ll;
  SOCKADDR_IN acc_sin, dest_sin;	// 地 址
  int acc_sin_len,status;
  char szMsg[ MY_MSG_LENGTH ];
  serv_sock = socket(AF_INET,SOCK_STREAM,0);
  dest_sin.sin_family=AF_INET;
  dest_sin.sin_addr.s_addr=INADDR_ANY;
  dest_sin.sin_port=htons(1023);
  bind(serv_sock,(struct sockaddr FAR *)
  &dest_sin,sizeof(dest_sin));
  listen(serv_sock,MAX_PENDING_CONNECTS);
  while( TRUE )
  {
acc_sin_len = sizeof(acc_sin);ShowMsg
 (hWin,“ 等 待 呼 叫");
rsock = accept( serv_sock,(struct sockaddr FAR *)
 &acc_sin,(int FAR *) &acc_sin_len );
    if (rsock < 0) 
    {ShowMsg(hWin,“Accept Error!");break;}
     ShowMsg(hWin,“ 收 到 连 接 请 求!");
status = recv( rsock, szMsg, MY_MSG_LENGTH,
 NO_FLAGS_SET );
    if (status == SOCKET_ERROR) 
    {ShowMsg(hWin,“Recv Error!");break;}
    if (status)
    {
    szMsg[status] = ‘\0';  ShowMsg(hWin,szMsg);
    if ( strstr(szMsg,“REQUEST") != NULL )
    {
    isend(rsock,“OK",2,0);
closesocket(rsock);Sleep(3000);
// 等 待 拨 号 连 接 退 出
if (StartCon( hWin,“163",“remote@pub2.fz.fj.cn",
“abcd",“163" ) == TRUE ) 
    {
     // 取 动 态 分 配 的IP 地 址
     rip.dwSize=sizeof(RASPPPIP);	
      if ( (ret=RasGetProjectionInfo(hCon,RASP_PppIp,
    (LPVOID) &rip,(LPDWORD) &ll ) ) != 0 )
     {ShowMsg(hWin,“ 取IP 地 址 失 败");break;}
     ShowMsg(hWin,rip.szIpAddress);ShowMsg(hWin,
    “ Send IP Adrress.... !");
     FtpWriteRead( “ftp.maoming.gd.cn",“abc.txt",
strlen(rip.szIpAddress),rip.szIpAddress,0);
     }
     else
     {ShowMsg(hWin,“Connect internet fail");}
      }//if ( strstr(szMsg,“REQUEST") != NULL )
      if ( strstr(szMsg,“DISCONNECT") != NULL )
      {
	send(rsock,“OK",2,0);
	closesocket(rsock);RasHangUp(hCon);
      } //end if ( strstr(szMsg,“DISCONNECT") != NULL )
    } //end if (status)
    else  
    {ShowMsg(hWin,“ 连 接 断 开! 等 待 下 一 个");
    closesocket(rsock);}
  }	//end 	while( TRUE )
  if(hCon != NULL )
  {RasHangUp(hCon);Sleep(3000);}
  hCon =NULL;closesocket(serv_sock);hThread=NULL;
  return;
}
// 实 现 本 地 计 算 机 向 远 程 计 算 机 
发 送 命 令 的 函 数 cIp 远 程 计 算 机
IP 地 址 SzCmd 命 令 字 符 串
BOOL SendCmd(char * cIp,char * szCmd)
{
    SOCKADDR_IN dest_sin;	// 地 址
    int status;
    char szMsg[ MY_MSG_LENGTH ];
    rsock = socket(AF_INET,SOCK_STREAM,0);
dest_sin.sin_family=AF_INET;dest_sin.sin_
addr.s_addr = inet_addr(cIp);
    dest_sin.sin_port=htons(1023);
if (connect( rsock,(PSOCKADDR)
 &dest_sin,sizeof(dest_sin) )<0 )
{ShowMsg(hWin,“ 连 接 失 败");
closesocket( rsock );return FALSE;}
    if ( send(rsock,szCmd,strlen(szCmd),0) != strlen(szCmd))
{ShowMsg(hWin,“ 送 命 令 失 败");
closesocket( rsock );return FALSE;}
status = recv( rsock, szMsg, MY_MSG
_LENGTH, NO_FLAGS_SET );
    if (status == SOCKET_ERROR) 
{ShowMsg(hWin,“Recv Error!");
closesocket( rsock );return FALSE;}
    szMsg[status] = ‘\0';  
    if ( status != 0 & &  strstr(szMsg,“OK") != NULL )
    {closesocket( rsock );return TRUE;}
    closesocket( rsock );return FALSE;?
}</span></font></pre>
        <pre>  转载自《计算机世界日报》 (文/许春漫)</span></font></pre>
         
      </td>
    </tr>
    </tbody> 
  </table>
</div>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -