Changeset 649


Ignore:
Timestamp:
2008/10/19 11:25:55 (4 years ago)
Author:
OverTaker
Message:

IPHostEntry,Dnsクラスを半分実装。getaddrinfoがXPSP1以降にしかないので、gethostbyname版の実装もあとでします。

Location:
trunk/ab5.0/ablib/src/Classes/System/Net
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/ablib/src/Classes/System/Net/EndPoint.ab

    r648 r649  
    2121    @return SocketAddressを元に作成したEndPoint 
    2222    */ 
    23     Function Create(address As SocketAddress) As EndPoint 
    24         socketAddress = address 
     23    Static Function Create(address As SocketAddress) As EndPoint 
     24        Dim point = New EndPoint 
     25        point.socketAddress = address 
     26        Return point 
    2527    End Function 
    2628 
  • trunk/ab5.0/ablib/src/Classes/System/Net/IPAddress.ab

    r648 r649  
    4747    @note  このコンストラクタはライブラリ内のみで使用する目的で作られています。 
    4848    */ 
    49     Sub IPAddress(address As SocketAddress) 
    50         family = address.AddressFamily 
     49    Sub IPAddress(addr As *sockaddr) 
     50        family = addr.sa_family 
    5151        Select Case family 
    5252            Case AF_INET 
    53                 Dim addr4 = address.Items As *sockaddr_in 
     53                Dim addr4 = addr As *sockaddr_in 
    5454                size = SizeOf(in_addr) 
    5555                item = malloc(size) 
    5656                memcpy(item, VarPtr(addr4->sin_addr.s_addr), size) 
    5757            Case AF_INET6 
    58                 Dim addr6 = address.Items As *sockaddr_in6 
     58                Dim addr6 = addr As *sockaddr_in6 
    5959                size = SizeOf(in6_addr) 
    6060                item = malloc(size) 
     
    6363                Throw New NotSupportedException("IPAddress: Not Supported AddressFamily.") 
    6464        End Select 
     65    End Sub 
     66 
     67    /*! 
     68    @brief コンストラクタ 
     69    @param IPアドレスを表したバイト列 
     70    @param IPアドレスの長さ 
     71    @note  このコンストラクタはライブラリ内のみで使用する目的で作られています。 
     72    */ 
     73    Sub IPAddress(af As DWord, address As *Byte, len As Long) 
     74        family = af 
     75        size = len 
     76        item = malloc(size) 
     77        memcpy(item, address, size) 
    6578    End Sub 
    6679 
     
    213226    */ 
    214227    Static Function Any() As IPAddress 
    215         Return New IPAddress(0) 
     228        Return New IPAddress(0 As DWord) 
    216229    End Function 
    217230 
  • trunk/ab5.0/ablib/src/Classes/System/Net/IPEndPoint.ab

    r648 r649  
    1515    Inherits EndPoint 
    1616Public 
     17 
     18    /*! 
     19    @brief  コンストラクタ 
     20    */ 
     21    Sub IPEndPoint() 
     22    End Sub 
    1723 
    1824    /*! 
     
    6167    */ 
    6268    Function Address() As IPAddress 
    63         Return New IPAddress(socketAddress) 
     69        Return New IPAddress(socketAddress.Items) 
    6470    End Function 
    6571 
     
    96102                Throw New NotSupportedException("IPEndPoint.Port: Unknown AddressFamily.") 
    97103        End Select 
     104    End Function 
     105 
     106    /*! 
     107    @brief  SocketAddressクラスから作成する 
     108    @param  SocketAddressクラス 
     109    @return SocketAddressを元に作成したIPEndPoint 
     110    */ 
     111    Static Function Create(address As SocketAddress) As IPEndPoint 
     112        Dim point = New IPEndPoint 
     113        point.socketAddress = address 
     114        Return point 
    98115    End Function 
    99116 
  • trunk/ab5.0/ablib/src/Classes/System/Net/SocketAddress.ab

    r648 r649  
    3838    Sub SocketAddress(family As Sockets.AddressFamily, size As Long) 
    3939        init(family, size) 
     40    End Sub 
     41 
     42    /*! 
     43    @brief  コンストラクタ。sockaddrを指定して初期化する 
     44    @param  sockaddr構造体 
     45    @note   このコンストラクタはライブラリ内でのみ使用する目的で作られています。 
     46    */ 
     47    Sub SocketAddress(addr As *sockaddr, len As Long) 
     48        itemSize = len 
     49        item = malloc(itemSize) 
     50        memcpy(item, addr, itemSize) 
    4051    End Sub 
    4152 
Note: See TracChangeset for help on using the changeset viewer.