anchor.diff:  function TRawSocket.SendBufTo(const data; const len: Integer): Integer;
   begin
   {$IFDEF POSIX}
  -  Result := sendto(FSocketHandle, data, len, 0, sockaddr(FSockaddr), sizeof(sockaddr_in));
  +  Result := sendto(FSocketHandle, data, len, 0, Psockaddr(@FSockaddr[0])^, sizeof(sockaddr_in));
   {$ELSE}
     Result := sendto(FSocketHandle, data, len, 0, FSockaddr, sizeof(sockaddr_in));
   {$ENDIF}
  
positive.code: {$ENDIF}
  
  type
    TSocketState = (ssDisconnected, ssConnected, ssConnecting, ssListening, ssAccepting);
  
    TRawSocket = class(TObject)
    private
      FSockaddr: sockaddr_in;
      FSocketHandle:THandle;
      procedure CheckDestroyHandle;
    public
  
negative.code:   fcntl(FSocketHandle, F_SETFL, lvFlags);
  
    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)));
    lvRet := Posix.SysSocket.Connect(FSocketHandle, Psockaddr(@FSockaddr[0])^, sizeof(sockaddr_in));
    lvErr := GetLastError;
    if lvRet = 0 then
    begin  // ӳɹ
  