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

📄 server.dpr

📁 远程控制源程序(DELPHI版)推荐初学delphi的朋友研究学习,该程序为服务端程序
💻 DPR
字号:
program server;
  {$APPTYPE CONSOLE}

uses
  sysutils,
  winsock,
  windows,
  MCommand in 'MCommand.pas';

  {$R *.RES}

const
  MaxLen=1024*2;
var
  count,ret,port,size:integer;
  thd,pid:dword;
  WSADATA:TWSADATA;
  sin:TSockAddr;
  ss:TSocket;
  pcs:^TSocket;
  host:string;
  databuf:array[0..MaxLen] of char;

function ThreadFun(lp:Pointer):integer;stdcall;
var
  pcs:^TSocket;
  ret:integer;
begin
  //返回值
  Result:=0;
  //取得客户接口
  pcs:=lp;
  //接收客户信息
  ret:=recv(pcs^,databuf,MaxLen,0);
  databuf[ret]:=#0;
  writeln(format('recv=%d,%s',[ret,databuf]));
  MCommand.ExecCommand(databuf);
  //发送服务信息
//  strcopy(databuf,pchar(format('Hack Server on Host=%s,Port=%d,count=%d',[host,port,count])));
  ret:=send(pcs^,databuf,strlen(databuf),MSG_DONTROUTE);
  writeln(format('send=%d',[ret]));
  //关闭客户接口
  ret:=closesocket(pcs^);
  writeln(format('closesocket=%d,pcs=%x',[ret,integer(pcs)]));
  //
  Dispose(pcs);
end;

begin
  writeln('Hack Server Ready.............');
  count:=0;
  //初使化网络环境
  ret:=WSAStartup(MakeWord(1,1),WSADATA);
  writeln(format('WSAStartup=%d',[ret]));
  //建立服务端接口
  ss:=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
  writeln(format('socket=%d',[ss]));
//  if ss=-1 then halt;
  //将接口和网卡邦定
  host:='127.0.0.1';
  port:=7404;
  sin.sin_family:=PF_INET;
  sin.sin_addr.s_addr:=inet_addr(pchar(host));//INADDR_ANY;//
  sin.sin_port:=htons(port);
  //
  ret:=bind(ss,sin,sizeof(sin));
  writeln(format('bind=%d',[ret]));
  //侦听网络连接请求
  ret:=listen(ss,5);
  writeln(format('listen=%d',[ret]));
  repeat
    //接受客户请求
    size:=SizeOf(sin);
    new(pcs);
    pcs^:=accept(ss,sin,size);
    writeln(format('accept=%d,pcs=%x,count:=%d',[pcs^,integer(pcs),count]));
    inc(count);
    //启动客户服务线程
    thd:=CreateThread(nil,0,@ThreadFun,pcs,0,pid);
    WaitForSingleObject(thd,INFINITE);
  until false;
  //关闭服务接口
  ret:=closesocket(ss);
  writeln(format('closesocket=%d',[ret]));
  //清理网络环境
  ret:=WSACleanup;
  writeln(format('WSACleanup=%d',[ret]));
  //readln;
end.

⌨️ 快捷键说明

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