public RIOTcpServer(ushort port, byte address1, byte address2, byte address3, byte address4) { var version = new RIOTcpServer.Version(2, 2); WSAData data; SocketError result = RIOImports.WSAStartup((short)version.Raw, out data); if (result != SocketError.Success) { var error = RIOImports.WSAGetLastError(); throw new Exception(String.Format("ERROR: WSAStartup returned {0}", error)); } _socket = RIOImports.WSASocket(ADDRESS_FAMILIES.AF_INET, SOCKET_TYPE.SOCK_STREAM, PROTOCOL.IPPROTO_TCP, IntPtr.Zero, 0, SOCKET_FLAGS.REGISTERED_IO); if (_socket == IntPtr.Zero) { var error = RIOImports.WSAGetLastError(); RIOImports.WSACleanup(); throw new Exception(String.Format("ERROR: WSASocket returned {0}", error)); } _rio = RIOImports.Initalize(_socket); _pool = new RIOThreadPool(_rio, _socket, CancellationToken.None); _connectionId = 0; Start(port, address1, address2, address3, address4); }