Changeset 649


Ignore:
Timestamp:
Oct 19, 2008, 11:25:55 AM (16 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.