예제 #1
0
        public void SockaddrInTest()
        {
            var address1 = new SockaddrIn {
                sin_family = UnixAddressFamily.AF_INET,
                sin_port   = Syscall.htons(5678),
                sin_addr   = NativeConvert.ToInAddr(IPAddress.Loopback),
            };

            var storage  = address1.ToSockaddrStorage();
            var address2 = SockaddrIn.FromSockaddrStorage(storage);

            Assert.AreEqual(address1, address2);

            var sockaddr = Sockaddr.FromSockaddrStorage(storage);

            Assert.AreEqual(sockaddr.sa_family, address1.sa_family);

            var storage2 = storage.ToSockaddrStorage();

            Assert.AreEqual(storage, storage2);

            var storage3 = new SockaddrStorage(123);

            storage2.CopyTo(storage3);
            Assert.AreEqual(storage, storage3);

            Assert.AreEqual("{sin_family=AF_INET, sin_port=htons(5678), sin_addr=127.0.0.1}", address1.ToString());
        }
예제 #2
0
        public void InAddr()
        {
            var ip     = IPAddress.Loopback;
            var inAddr = NativeConvert.ToInAddr(ip);

            Assert.AreEqual(ip, NativeConvert.ToIPAddress(inAddr));
            Assert.AreEqual(0x7f000001, Syscall.ntohl(inAddr.s_addr));

            Assert.AreEqual("127.0.0.1", inAddr.ToString());
        }