procedure tform1.onshow(view:TListView;clientinfo:tclientinfo);
var hlist:TListItem;
begin
 hlist:=view.Items.Add;
 hlist.Caption:=clientinfo.psip+':'+inttostr(clientinfo.wport);
 hlist.SubItems.Add('');
 hlist.SubItems.Add(clientinfo.szcommand);
end;
procedure TForm1.startserver(Sender: TObject);
var ra:sockaddr_in;//record类型
begin
 server:=socket(PF_INET,SOCK_STREAM,IPPROTO_IP);
 if (server=invalid_socket) then
 begin
   StatusBar1.SimpleText:='创建发送socket错误';
   Exit;
 end
 else
  ra.sin_family:=PF_INET;
  ra.sin_port:=htons(80);//端口
  ra.sin_addr.S_addr:=INADDR_ANY;
  if  (bind(server,ra,SizeOf(ra))=socket_error) then
  begin
   statusbar1.SimpleText:='绑定socket错误';
    exit;
    end
    else
  listen(server,5);
  StatusBar1.SimpleText:='服务器已经启动';
end;procedure TForm1.FormCreate(Sender: TObject);
 var aw:TWSAData;
begin
  if WSAStartup($0101,aw)<>0 then
  begin
  MessageBox(Handle,'不能启动动态链接库winsock','错误',mb_ok);
  Exit;
  end
  else
messagebox(self.handle,aw.szdescription,'winsock版本',mb_ok);
end;
procedure TForm1.N6Click(Sender: TObject);
const:blocklen=1024*4;//能发送的最大缓存
var
ftrans:file of Byte;
filesize:integer;
sendbuf:array[0..blocklen-1]of Byte; //发送文件的缓存
sendsocket:TSocket;
se:sockaddr_in;
se_len:Integer;
begin
 se_len:=SizeOf(se);
 sendsocket:=accept(server,@Se,@se_len);
 filesize:=send(server,sendbuf[0],blocklen);
 Application.ProcessMessages;
 CloseFile()
end;