public void UDP_SocketOpenClose() { _sock = C.Socket.NewUDP(C.Endpoint.NewV4(_port)); fixed(C.Socket *sockptr = &_sock) { Assert.True(UDP.Setup()); Assert.True(UDP.SocketOpen(sockptr)); Assert.True(UDP.SocketClose(sockptr)); } }
public void UDP_SocketSendRecv() { Random rand = new Random(); /* server side endpoints, socket, random payload, send/recv buffers */ C.IPv4 loopback = C.IPv4.New(127, 0, 0, 1); C.Endpoint ep_server = C.Endpoint.NewV4(_port, loopback); C.Endpoint ep_server_recv = default; _sock_server = C.Socket.NewUDP(ep_server); C.Buffer buf_server_recv; C.Buffer buf_server_send; byte[] pl_server = new byte[1235]; byte[] mem_server = new byte[1408]; rand.NextBytes(pl_server); fixed(byte *bufptr = pl_server) buf_server_send = C.Buffer.New(bufptr, pl_server.Length); fixed(byte *bufptr = mem_server) buf_server_recv = C.Buffer.New(bufptr, mem_server.Length); /* client side endpoints, socket, random payload, send/recv buffers */ C.Endpoint ep_client = C.Endpoint.NewV4(_port + 1, loopback); C.Endpoint ep_client_recv = default; _sock_client = C.Socket.NewUDP(ep_client); C.Buffer buf_client_recv; C.Buffer buf_client_send; byte[] pl_client = new byte[256]; byte[] mem_client = new byte[1408]; rand.NextBytes(pl_client); fixed(byte *bufptr = pl_client) buf_client_send = C.Buffer.New(bufptr, pl_client.Length); fixed(byte *bufptr = mem_client) buf_client_recv = C.Buffer.New(bufptr, mem_client.Length); Assert.True(UDP.Setup()); fixed(C.Socket *sockptr_server = &_sock_server) fixed(C.Socket * sockptr_client = &_sock_client) { Assert.True(UDP.SocketOpen(sockptr_server)); Assert.True(UDP.SocketOpen(sockptr_client)); Assert.True(UDP.SocketNonBlocking(sockptr_client, true)); Assert.AreEqual(UDP.SocketSend(sockptr_client, &buf_client_send, 1, &ep_server), pl_client.Length); Assert.AreEqual(UDP.SocketRecv(sockptr_server, &buf_server_recv, 1, &ep_server_recv), pl_client.Length); fixed(byte *bufptr = pl_client) Assert.True(Util.MemCmp(bufptr, 0, buf_server_recv.buf, 0, pl_client.Length)); Assert.True(Util.MemCmp((byte *)&ep_client, 2, (byte *)&ep_server_recv, 2, sizeof(C.Endpoint) - 2)); Assert.AreEqual(UDP.SocketSend(sockptr_server, &buf_server_send, 1, &ep_client), pl_server.Length); Assert.AreEqual(UDP.SocketRecv(sockptr_client, &buf_client_recv, 1, &ep_client_recv), pl_server.Length); fixed(byte *bufptr = pl_server) Assert.True(Util.MemCmp(bufptr, 0, buf_client_recv.buf, 0, pl_server.Length)); Assert.True(Util.MemCmp((byte *)&ep_server, 2, (byte *)&ep_client_recv, 2, sizeof(C.Endpoint) - 2)); Assert.True(UDP.SocketClose(sockptr_client)); Assert.True(UDP.SocketClose(sockptr_server)); } }
public void TestSetup() { _sock_server = default; _sock_client = default; }
public void TestSetup() { _sock = default; }