anchor.diff:  
   function TRawSocket.Connect(const pvAddr: string; pvPort: Integer): Boolean;
   begin
  -  FillChar(FSockaddr, SizeOf(sockaddr_in), 0);
  -  FSockaddr.sin_family := AF_INET;
  -  FSockaddr.sin_port := htons(pvPort);
  -  FSockaddr.sin_addr.s_addr :=inet_addr(MarshaledAString(UTF8Encode(pvAddr)));
  -  Result := Posix.SysSocket.Connect(FSocketHandle, sockaddr(FSockaddr), sizeof(sockaddr_in))  = 0;
  +  if FIPVersion = IP_V6 then
  +  begin
  +    FillChar(FSockaddr, SizeOf(FSockaddr), 0);
  +    Psockaddr_in6(@FSockaddr[0])^.sin6_port := htons(pvPort);
  +    Psockaddr_in6(@FSockaddr[0])^.sin6_family := AF_INET6;
  +    if not TranslateStringToTInAddr(pvAddr, FSockaddr[0], IP_V6) then
  +    begin
  +      raise Exception.CreateFmt('ǷIP[%s], ʧ', [pvAddr]);
  +    end;
  +
  +    Result := Posix.SysSocket.Connect(FSocketHandle,
  +      Psockaddr(@FSockaddr[0])^, SizeOf(sockaddr_in6))  = 0;
  +  end else
  +  begin
  +    FillChar(FSockaddr, SizeOf(FSockaddr), 0);
  +    Psockaddr_in(@FSockaddr[0])^.sin_family := AF_INET;
  +    Psockaddr_in(@FSockaddr[0])^.sin_port := htons(pvPort);
  +    Psockaddr_in(@FSockaddr[0])^.sin_addr.s_addr :=inet_addr(MarshaledAString(UTF8Encode(pvAddr)));
  +    Result := Posix.SysSocket.Connect(FSocketHandle, Psockaddr(@FSockaddr[0])^, sizeof(sockaddr_in))  = 0;
  +  end;
   
   end;
   
  
positive.code:   fcntl(FSocketHandle, F_SETFL, lvFlags);
  
    FillChar(FSockaddr, SizeOf(sockaddr_in), 0);
    FSockaddr.sin_family := AF_INET;
    FSockaddr.sin_port := htons(pvPort);
  
    FSockaddr.sin_addr.s_addr :=inet_addr(MarshaledAString(UTF8Encode(pvAddr)));
    lvRet := Posix.SysSocket.Connect(FSocketHandle, sockaddr(FSockaddr), sizeof(sockaddr_in));
    lvErr := GetLastError;
    if lvRet = 0 then
    begin  // ӳɹ
  
negative.code: procedure TRawSocket.SetConnectInfo(const pvAddr: string; pvPort: Integer);
  begin
    FillChar(FSockaddr, SizeOf(sockaddr_in), 0);
    Psockaddr_in(@FSockaddr[0])^.sin_family := AF_INET;
    Psockaddr_in(@FSockaddr[0])^.sin_port := htons(pvPort);
    Psockaddr_in(@FSockaddr[0])^.sin_addr.s_addr :=inet_addr(MarshaledAString(UTF8Encode(pvAddr)));
  end;
  
  function TRawSocket.SetNonBlock(pvBlock:Boolean): Integer;
  