TestMain.cs 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Diagnostics;
  6. using System.Threading;
  7. using System.Timers;
  8. using System.IO;
  9. using RakNet;
  10. namespace InternalSwigTestApp
  11. {
  12. class TestMain
  13. {
  14. static void Main(string[] args)
  15. {
  16. if(!File.Exists("RakNet.dll"))
  17. {
  18. Console.WriteLine("Error: The SWIG build of the DLL has not been copied to the executable directory.\nPress enter.");
  19. Console.Read();
  20. return;
  21. }
  22. Packet testPacket;
  23. int loopNumber;
  24. BitStream stringTestSendBitStream = new BitStream();
  25. BitStream rakStringTestSendBitStream = new BitStream();
  26. BitStream receiveBitStream = new BitStream();
  27. String holdingString;
  28. TimeSpan startTimeSpan;
  29. RakString rakStringTest = new RakString();
  30. RakPeerInterface testClient = RakPeer.GetInstance();
  31. testClient.Startup(1, new SocketDescriptor(60000, "127.0.0.1"), 1);
  32. RakPeerInterface testServer = RakPeer.GetInstance();
  33. testServer.Startup(1, new SocketDescriptor(60001, "127.0.0.1"), 1);
  34. testServer.SetMaximumIncomingConnections(1);
  35. Console.WriteLine("Press enter to start RakString send and receive loop using BitStream.\nBitStream read done into RakString");
  36. Console.WriteLine("Loop will run for 15 seconds");
  37. Console.ReadLine();
  38. testClient.Connect("127.0.0.1", 60001, "", 0);
  39. String sendString = "The test string";
  40. stringTestSendBitStream.Write((byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM);
  41. stringTestSendBitStream.Write(sendString);
  42. RakString testRakString = new RakString("Test RakString");
  43. rakStringTestSendBitStream.Write((byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM);
  44. rakStringTestSendBitStream.Write(testRakString);
  45. startTimeSpan = (DateTime.UtcNow - new DateTime(1970, 1, 1));
  46. loopNumber = 0;
  47. while (startTimeSpan.TotalSeconds + 15 > (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds)
  48. {
  49. testPacket = testServer.Receive();
  50. if (testPacket != null && testPacket.data[0] == (byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM)
  51. {
  52. receiveBitStream.Reset();
  53. receiveBitStream.Write(testPacket.data, testPacket.length);
  54. receiveBitStream.IgnoreBytes(1);
  55. receiveBitStream.Read(rakStringTest);
  56. Console.WriteLine("Loop number: " + loopNumber + "\nData: " + rakStringTest.C_String());
  57. }
  58. testServer.DeallocatePacket(testPacket);
  59. loopNumber++;
  60. System.Threading.Thread.Sleep(50);
  61. testClient.Send(rakStringTestSendBitStream, PacketPriority.LOW_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, new AddressOrGUID(new SystemAddress("127.0.0.1", 60001)), false);
  62. }
  63. Console.WriteLine("Press enter to start String send and receive loop using BitStream.\nBitStream read done into String");
  64. Console.WriteLine("Loop will run for 15 seconds");
  65. Console.ReadLine();
  66. startTimeSpan = (DateTime.UtcNow - new DateTime(1970, 1, 1));
  67. loopNumber = 0;
  68. while (startTimeSpan.TotalSeconds + 15 > (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds)
  69. {
  70. testPacket = testServer.Receive();
  71. if (testPacket != null && testPacket.data[0] == (byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM)
  72. {
  73. receiveBitStream.Reset();
  74. receiveBitStream.Write(testPacket.data, testPacket.length);
  75. receiveBitStream.IgnoreBytes(1);
  76. receiveBitStream.Read(out holdingString);
  77. Console.WriteLine("Loop number: " + loopNumber + "\nData: " + holdingString);
  78. }
  79. testServer.DeallocatePacket(testPacket);
  80. loopNumber++;
  81. System.Threading.Thread.Sleep(50);
  82. testClient.Send(stringTestSendBitStream, PacketPriority.LOW_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, new AddressOrGUID(new SystemAddress("127.0.0.1", 60001)), false);
  83. }
  84. //-----------------------------Above is the same as the public tests, below the internal tests are ran.
  85. /*Member variables are also tested to assure working typemaps
  86. * Also variables use functions as well, they are not direct access
  87. * act like it. Test write and read on these items, especially arrays.
  88. * Most tests in this section are simple running functions with no verification.
  89. *
  90. *
  91. */
  92. RakString workingRakStringCopy;//This is needed for temp RakString Instances in the main function so dispose can be called
  93. //RakNetStatistics
  94. Console.WriteLine("RakNetStatistics");
  95. string rakNetStatisticsTestString;
  96. RakNetStatistics testRakNetStatistics = new RakNetStatistics();
  97. testRakNetStatistics.bytesInSendBuffer[0] = 22.44;
  98. testRakNetStatistics.BPSLimitByCongestionControl = 9;
  99. testRakNetStatistics.BPSLimitByOutgoingBandwidthLimit = 9;
  100. testRakNetStatistics.connectionStartTime = 9;
  101. testRakNetStatistics.isLimitedByCongestionControl = false;
  102. testRakNetStatistics.isLimitedByOutgoingBandwidthLimit = true;
  103. testRakNetStatistics.messageInSendBuffer[0] = 112;
  104. testRakNetStatistics.messagesInResendBuffer = 9;
  105. testRakNetStatistics.packetlossLastSecond = 4.3f;
  106. testRakNetStatistics.packetlossTotal = 9.9f;
  107. testRakNetStatistics.runningTotal[0] = 121;
  108. testRakNetStatistics.valueOverLastSecond[0] = 112;
  109. Console.WriteLine(testRakNetStatistics.bytesInSendBuffer[0]);
  110. Console.WriteLine(testRakNetStatistics.BPSLimitByCongestionControl);
  111. Console.WriteLine(testRakNetStatistics.BPSLimitByOutgoingBandwidthLimit);
  112. Console.WriteLine(testRakNetStatistics.connectionStartTime);
  113. Console.WriteLine(testRakNetStatistics.isLimitedByCongestionControl);
  114. Console.WriteLine(testRakNetStatistics.isLimitedByOutgoingBandwidthLimit);
  115. Console.WriteLine(testRakNetStatistics.messageInSendBuffer[0]);
  116. Console.WriteLine(testRakNetStatistics.messagesInResendBuffer);
  117. Console.WriteLine(testRakNetStatistics.packetlossLastSecond);
  118. Console.WriteLine(testRakNetStatistics.packetlossTotal);
  119. Console.WriteLine(testRakNetStatistics.runningTotal[0]);
  120. Console.WriteLine(testRakNetStatistics.valueOverLastSecond[0]);
  121. RakNet.RakNet.StatisticsToString(testRakNetStatistics, out rakNetStatisticsTestString, 1);
  122. Console.WriteLine(rakNetStatisticsTestString);
  123. //SystemAddress
  124. Console.WriteLine("SystemAddress");
  125. SystemAddress testSystemAddress = new SystemAddress("127.0.0.1", 60001);
  126. //RakNetGUID
  127. RakNetGUID testRakNetGUID = testClient.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  128. Console.WriteLine(testRakNetGUID);
  129. //AddressOrGUID
  130. Console.WriteLine("AddressOrGUID");
  131. AddressOrGUID testAddressOrGUIDAddress = new AddressOrGUID(testSystemAddress);
  132. Console.WriteLine(testAddressOrGUIDAddress.systemAddress);
  133. AddressOrGUID testAddressOrGUIDRakNetGUID = new AddressOrGUID(testRakNetGUID);
  134. Console.WriteLine(testAddressOrGUIDRakNetGUID.rakNetGuid);
  135. //BitStream
  136. Console.WriteLine("BitStream");
  137. BitStream testBitStream1 = new BitStream();
  138. BitStream testBitStream2 = new BitStream();
  139. byte[] testBuffer = new byte[999];
  140. byte[] writeArray = new byte[99];
  141. Packet bitStreamTestPacket = null;
  142. testBitStream1.Write((byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM);
  143. testBitStream1.ResetWritePointer();
  144. testBitStream1.Write((byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM);
  145. writeArray[0] = (byte)127;
  146. testBitStream1.Write("xy");
  147. testBitStream1.WriteCompressed("xy");
  148. testBitStream1.WriteFloat16(23.5f, 0, 100);
  149. testBitStream1.WriteBits(writeArray, 7);
  150. testBitStream1.WriteAlignedBytesSafe(writeArray, 1, 1);
  151. testBitStream1.WriteAlignedBytes(writeArray, 1);
  152. testBitStream1.Write0();
  153. testBitStream1.Write1();
  154. int intForSerialization = 99;
  155. testBitStream1.Serialize(true, ref intForSerialization);
  156. testClient.Send(testBitStream1, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, new AddressOrGUID(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS), true);
  157. while (bitStreamTestPacket == null || bitStreamTestPacket.data[0] != (byte)DefaultMessageIDTypes.ID_USER_PACKET_ENUM)
  158. {
  159. if (bitStreamTestPacket != null)
  160. {
  161. testServer.DeallocatePacket(bitStreamTestPacket);
  162. }
  163. bitStreamTestPacket = testServer.Receive();
  164. testClient.Send(testBitStream1, PacketPriority.HIGH_PRIORITY, PacketReliability.RELIABLE_ORDERED, (char)0, new AddressOrGUID(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS), true);
  165. }
  166. testBitStream2.Reset();
  167. testBitStream2 = new BitStream(bitStreamTestPacket.data, bitStreamTestPacket.length, true);
  168. testBitStream2.IgnoreBytes(1);
  169. testBitStream2.ResetReadPointer();
  170. testBitStream2.IgnoreBits(8);
  171. testBitStream2.ResetReadPointer();
  172. testBitStream2.ReadBits(testBuffer, 8);
  173. Console.WriteLine(testBuffer[0]);
  174. Console.WriteLine(DefaultMessageIDTypes.ID_USER_PACKET_ENUM);
  175. testBitStream2.ResetReadPointer();
  176. testBitStream2.ReadAlignedVar8(testBuffer);
  177. Console.WriteLine(testBuffer[0]);
  178. testBitStream2.ResetReadPointer();
  179. testBitStream2.ReadAlignedVar16(testBuffer);
  180. Console.WriteLine(testBuffer[1]);
  181. testBitStream2.ResetReadPointer();
  182. testBitStream2.ReadAlignedVar32(testBuffer);
  183. Console.WriteLine(testBuffer[1]);
  184. testBitStream2.ResetReadPointer();
  185. testBitStream2.IgnoreBits(8);
  186. Console.WriteLine("testBitStream1 hex and bits");
  187. testBitStream1.PrintHex();
  188. Console.WriteLine("\n");
  189. testBitStream1.PrintBits();
  190. Console.WriteLine("\ntestBitStream1 hex and bits");
  191. Console.WriteLine("testBitStream2 hex and bits end");
  192. testBitStream2.PrintHex();
  193. Console.WriteLine("\n");
  194. testBitStream2.PrintBits();
  195. Console.WriteLine("\ntestBitStream2 hex and bits end");
  196. String testString;
  197. Console.WriteLine("testBitStream2 hex and bits string output");
  198. testBitStream2.PrintHex(out testString);
  199. Console.WriteLine(testString + "\n");
  200. testBitStream2.PrintBits(out testString);
  201. Console.WriteLine(testString);
  202. Console.WriteLine("testBitStream2 hex and bits string output end");
  203. testBitStream2.Read(out testString);
  204. Console.WriteLine(testString);
  205. Console.WriteLine(testBitStream2.ReadCompressed(out testString));
  206. Console.WriteLine(testString);
  207. testBitStream2.WriteCompressedDelta("xy", "yz");
  208. testBitStream2.WriteCompressedDelta("xy", "xy");
  209. Console.WriteLine(testBitStream2.ReadCompressedDelta(out testString));
  210. Console.WriteLine(testString);
  211. Console.WriteLine(testBitStream2.ReadCompressedDelta(out testString));
  212. Console.WriteLine(testString);
  213. testBitStream2.WriteDelta("xy", "yz");
  214. testBitStream2.WriteDelta("xy", "xy");
  215. Console.WriteLine(testBitStream2.ReadDelta(out testString));
  216. Console.WriteLine(testString);
  217. Console.WriteLine(testBitStream2.ReadDelta(out testString));
  218. Console.WriteLine(testString);
  219. float testFloat;
  220. testBitStream2.ReadFloat16(out testFloat, 0, 100);
  221. Console.WriteLine(testFloat);
  222. testBitStream2.ReadBits(testBuffer, 7);
  223. Console.WriteLine(testBuffer[0]);
  224. testBitStream2.ReadAlignedBytesSafe(testBuffer, 1, 1);
  225. Console.WriteLine(testBuffer[0]);
  226. testBitStream2.ReadAlignedBytes(testBuffer, 1);
  227. Console.WriteLine(testBuffer[0]);
  228. Console.WriteLine(testBitStream2.ReadBit());
  229. Console.WriteLine(testBitStream2.ReadBit());
  230. int intForSerialization2 = 0;
  231. testBitStream2.Serialize(false, ref intForSerialization2);
  232. Console.WriteLine(intForSerialization2);
  233. testBitStream2.PadWithZeroToByteLength(99);
  234. testBitStream2.PrintBits();
  235. testBitStream2.SetData(testBuffer);
  236. Console.WriteLine("setbuff");
  237. testBitStream2.PrintBits();
  238. Console.WriteLine(testBitStream2.GetNumberOfBitsAllocated());
  239. //ByteQueue
  240. Console.WriteLine("ByteQueue");
  241. ByteQueue testByteQueue = new ByteQueue();
  242. testByteQueue.WriteBytes(testBuffer, (uint)testBuffer.Length, "", 0);
  243. testByteQueue.DecrementReadOffset(1);
  244. Console.WriteLine(testByteQueue.GetBytesWritten());
  245. testByteQueue.IncrementReadOffset(1);
  246. uint testUint;
  247. byte[] returnArray = testByteQueue.PeekContiguousBytes(out testUint);
  248. testByteQueue.Print();
  249. testByteQueue.ReadBytes(returnArray, (uint)returnArray.Length, true);
  250. testByteQueue.Clear("", 0);
  251. testBitStream2.AddBitsAndReallocate(99);
  252. testBitStream2.AlignReadToByteBoundary();
  253. testBitStream2.AlignWriteToByteBoundary();
  254. testBitStream2.EndianSwapBytes(5, 5);
  255. returnArray = testBitStream2.GetData();
  256. Console.WriteLine(testBitStream2.GetNumberOfBitsAllocated());
  257. Console.WriteLine(testBitStream2.GetNumberOfBitsUsed());
  258. Console.WriteLine(testBitStream2.GetNumberOfBytesUsed());
  259. Console.WriteLine(testBitStream2.GetNumberOfUnreadBits());
  260. Console.WriteLine(testBitStream2.GetReadOffset());
  261. Console.WriteLine(testBitStream2.GetWriteOffset());
  262. testBitStream2.SetData(returnArray);
  263. testBitStream2.SetNumberOfBitsAllocated(testBitStream2.GetNumberOfBitsAllocated());
  264. testBitStream2.SetReadOffset(3);
  265. testBitStream2.SetWriteOffset(3);
  266. testBitStream2.WriteBits(returnArray, (uint)returnArray.Length);
  267. //Cell, Table, Row
  268. Console.WriteLine("Cell, Table, Row");
  269. Cell testCell = new Cell();
  270. Byte[] tableTestByteArray = new byte[1];
  271. tableTestByteArray[0] = (byte)'t';
  272. int outInt;
  273. double outDouble;
  274. testCell.Set("test1232");
  275. testCell.Get(out testString);
  276. Console.WriteLine(testString);
  277. Console.WriteLine((int)testCell.EstimateColumnType());
  278. testCell.CopyData(testCell);
  279. testCell.Set(12.5d);
  280. testCell.Get(out outDouble);
  281. Console.WriteLine(outDouble);
  282. testCell.Set((uint)1);
  283. testCell.Set((int)1);
  284. testCell.Get(out outInt);
  285. Console.WriteLine(outInt);
  286. testCell.Set(tableTestByteArray, tableTestByteArray.Length);
  287. testCell.Get(tableTestByteArray, out outInt);
  288. Console.WriteLine(testCell.i);
  289. Console.WriteLine(testCell.isEmpty);
  290. Table testTable = new Table();
  291. testTable.Clear();
  292. testTable.AddColumn("testNumeric", Table.ColumnType.NUMERIC);
  293. testTable.AddColumn("testString", Table.ColumnType.STRING);
  294. testTable.AddColumn("testBinary", Table.ColumnType.BINARY);
  295. testTable.AddRow(0, new RakNetListCell());
  296. testTable.AddRow(1, new RakNetListCell());
  297. testTable.AddRow(2);
  298. testTable.AddRow(3);
  299. testTable.AddRow(4);
  300. testTable.AddRow(5);
  301. Console.WriteLine(testTable.ColumnIndex("testNumeric"));
  302. Console.WriteLine(testTable.ColumnName(0));
  303. Console.WriteLine(testTable.GetAvailableRowId());
  304. testTable.UpdateCell(0, 0, 9);
  305. testTable.UpdateCell(0, 1, "testCell");
  306. testTable.UpdateCell(0, 2, 1, tableTestByteArray);
  307. testTable.GetCellValueByIndex(0, 0, out outInt);
  308. Console.WriteLine(outInt);
  309. string outString;
  310. testTable.GetCellValueByIndex(0, 1, out outString);
  311. Console.WriteLine(outString);
  312. int outLen;
  313. testTable.GetCellValueByIndex(0, 2, out tableTestByteArray, out outLen);
  314. Console.WriteLine(tableTestByteArray[0]);
  315. Console.WriteLine(outLen);
  316. Console.WriteLine(testTable.GetColumnCount());
  317. RakNetListColumnDescriptor descriptorList = testTable.GetColumns();
  318. Console.WriteLine(testTable.GetColumnType(1) == Table.ColumnType.STRING);
  319. RakNetPageRow testPageRow = testTable.GetListHead();
  320. Console.WriteLine(testPageRow.isLeaf);
  321. Console.WriteLine(testPageRow.size);
  322. Row testRow = testTable.GetRowByID(0);
  323. Console.WriteLine(testRow.cells[0]);
  324. Console.WriteLine(testTable.GetRowCount());
  325. RakNetBPlusTreeRow bplus = testTable.GetRows();
  326. byte[] byteTest = new byte[999];
  327. testTable.PrintColumnHeaders(byteTest, 999, ';');
  328. testTable.PrintRow(byteTest, 999, ';', true, testRow);
  329. uint[] columnIds = new uint[1];
  330. columnIds[0] = 0;
  331. uint[] rowIds = new uint[1];
  332. rowIds[0] = 0;
  333. Table outTable = new Table();
  334. testTable.QueryTable(columnIds, 1, null, 0, rowIds, 1, outTable);
  335. Row[] testRows;
  336. testTable.SortTable(null, 0, out testRows);
  337. testTable.UpdateCellByIndex(0, 1, "5");
  338. testTable.PrintColumnHeaders(testBuffer, testBuffer.Length, ';');
  339. Console.WriteLine(System.Text.Encoding.GetEncoding(1251).GetString(testBuffer).Trim('\0'));
  340. testTable.PrintRow(testBuffer, testBuffer.Length, ';', true, testRow);
  341. Console.WriteLine(System.Text.Encoding.GetEncoding(1251).GetString(testBuffer).Trim('\0'));
  342. testTable.RemoveColumn(2);
  343. testTable.RemoveRow(2);
  344. testTable.RemoveRows(outTable);
  345. //ColumnDescriptor
  346. Console.WriteLine("ColumnDescriptor");
  347. ColumnDescriptor testColumnDescriptor = descriptorList.Pop();
  348. Console.WriteLine(testColumnDescriptor.columnName);
  349. Console.WriteLine(testColumnDescriptor.columnType);
  350. //ConnectionGraph2
  351. Console.WriteLine("ConnectionGraph2");
  352. ConnectionGraph2 testConnectionGraph2 = new ConnectionGraph2();
  353. testClient.AttachPlugin(testConnectionGraph2);
  354. testConnectionGraph2.ConnectionExists(testClient.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS), testServer.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS));
  355. SystemAddress[] outSystemAddressList = new SystemAddress[1];
  356. RakNetGUID[] outGuidList = new RakNetGUID[1];
  357. uint inOutUint = 1;
  358. testConnectionGraph2.GetConnectionListForRemoteSystem(testServer.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS), outSystemAddressList, outGuidList, ref inOutUint);
  359. //DirectoryDeltaTransfer
  360. Console.WriteLine("DirectoryDeltaTransfer");
  361. DirectoryDeltaTransfer testDirectoryDeltaTransfer = new DirectoryDeltaTransfer();
  362. testClient.AttachPlugin(testDirectoryDeltaTransfer);
  363. testDirectoryDeltaTransfer.AddUploadsFromSubdirectory("./");
  364. testDirectoryDeltaTransfer.ClearUploads();
  365. FileListTransferCBInterface testCallBack = new FileListTransferCB();
  366. FileListProgress testFileListProgress = new FileListProgress();
  367. Console.WriteLine(testDirectoryDeltaTransfer.GetNumberOfFilesForUpload());
  368. testDirectoryDeltaTransfer.SetApplicationDirectory("./");
  369. IncrementalReadInterface testIncrementalReadInterface = null;
  370. testDirectoryDeltaTransfer.SetDownloadRequestIncrementalReadInterface(testIncrementalReadInterface, 24);
  371. FileListTransfer testFileListTransfer = new FileListTransfer();
  372. testDirectoryDeltaTransfer.SetFileListTransferPlugin(testFileListTransfer);
  373. testDirectoryDeltaTransfer.SetUploadSendParameters(PacketPriority.HIGH_PRIORITY, (char)0);
  374. testDirectoryDeltaTransfer.DownloadFromSubdirectory("./", "./", false, testClient.GetSystemAddressFromIndex(0), testCallBack, PacketPriority.HIGH_PRIORITY, (char)0, testFileListProgress);
  375. //FileListNode
  376. Console.WriteLine("FileListNode");
  377. FileListNode testFileListNode = new FileListNode();
  378. //FileListNodeContext
  379. Console.WriteLine("FileListNodeContext");
  380. FileListNodeContext testFileListNodeContext = new FileListNodeContext();
  381. testFileListNodeContext.op = 0;
  382. testFileListNodeContext.fileId = 0;
  383. Console.WriteLine(testFileListNodeContext.op);
  384. Console.WriteLine(testFileListNodeContext.fileId);
  385. //FileList
  386. Console.WriteLine("FileList");
  387. FileList testFileList = FileList.GetInstance();
  388. testFileList.AddFile("./", "RakNet.dll", testFileListNodeContext);
  389. testFileList.AddFilesFromDirectory("./", "./", true, true, false, testFileListNodeContext);
  390. testFileList.FlagFilesAsReferences();
  391. FileList outFileList = FileList.GetInstance();
  392. testFileList.GetDeltaToCurrent(testFileList, outFileList, "", "./");
  393. Console.WriteLine(testFileList.fileList);
  394. testFileList.Clear();
  395. testFileList.DeleteFiles("./notexisting");
  396. testFileList.ListMissingOrChangedFiles("./", outFileList, false, false);
  397. testFileList.PopulateDataFromDisk("./", false, false, false);
  398. testFileList.WriteDataToDisk("./notexisting/");
  399. testFileList.Serialize(testBitStream2);
  400. testFileList.SetCallback(testFileListProgress);
  401. //FileListProgress
  402. Console.WriteLine("FileListProgress");
  403. testFileListProgress.OnAddFilesFromDirectoryStarted(testFileList, "./");
  404. testFileListProgress.OnDirectory(testFileList, "./", 9);
  405. testFileListProgress.OnFile(testFileList, "./", "nonexist", 22);
  406. testFileListProgress.OnFilePush("./Nonexist", 99, 99, 99, true, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  407. //FileListTransferCBInterface
  408. Console.WriteLine("FileListTransferCBInterface");
  409. FileListTransferCBInterface testFileListTransferCBInterface = new FileListTransferCBInterface();
  410. //FileListTransfer
  411. Console.WriteLine("FileListTransfer");
  412. FileListTransfer testFileListTransferServer = new FileListTransfer();
  413. testClient.AttachPlugin(testFileListTransfer);
  414. testServer.AttachPlugin(testFileListTransferServer);
  415. testFileListTransfer.GetCallback();
  416. testFileListTransfer.GetPendingFilesToAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  417. testFileListTransfer.IsHandlerActive(99);
  418. testFileListTransfer.SetCallback(testFileListProgress);
  419. testFileListTransfer.SetupReceive(testFileListTransferCBInterface, false, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  420. testFileListTransfer.Send(testFileList, testClient, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, 99, PacketPriority.LOW_PRIORITY, (char)0, testIncrementalReadInterface);
  421. testFileListTransfer.CancelReceive(0);
  422. testFileListTransfer.RemoveReceiver(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  423. //FileProgressStruct
  424. Console.WriteLine("FileProgressStruct");
  425. FileProgressStruct testFileProgressStruct = new FileProgressStruct();
  426. testFileProgressStruct.allocateIrIDataChunkAutomatically = true;
  427. testFileProgressStruct.dataChunkLength = 99;
  428. testFileProgressStruct.firstDataChunk = testBuffer;
  429. testFileProgressStruct.iriDataChunk = testBuffer;
  430. testFileProgressStruct.iriWriteOffset = 99;
  431. testFileProgressStruct.onFileStruct = new OnFileStruct();
  432. testFileProgressStruct.partCount = 99;
  433. testFileProgressStruct.partTotal = 99;
  434. Console.WriteLine(testFileProgressStruct.allocateIrIDataChunkAutomatically);
  435. Console.WriteLine(testFileProgressStruct.dataChunkLength);
  436. Console.WriteLine(testFileProgressStruct.firstDataChunk[0]);
  437. Console.WriteLine(testFileProgressStruct.iriDataChunk[0]);
  438. Console.WriteLine(testFileProgressStruct.iriWriteOffset);
  439. Console.WriteLine(testFileProgressStruct.onFileStruct);
  440. Console.WriteLine(testFileProgressStruct.partCount);
  441. Console.WriteLine(testFileProgressStruct.partTotal);
  442. //FilterQuery
  443. Console.WriteLine("FilterQuery");
  444. FilterQuery testFilterQuery = new FilterQuery();
  445. testFilterQuery.cellValue = testCell;
  446. testFilterQuery.columnIndex = 0;
  447. testFilterQuery.columnName = "TestName";
  448. testFilterQuery.operation = Table.FilterQueryType.QF_EQUAL;
  449. Console.WriteLine(testFilterQuery.cellValue);
  450. Console.WriteLine(testFilterQuery.columnIndex);
  451. Console.WriteLine(testFilterQuery.columnName);
  452. Console.WriteLine(testFilterQuery.operation);
  453. //FLP_Printf
  454. Console.WriteLine("FLP_Printf");
  455. FLP_Printf testFLP_Printf = new FLP_Printf();
  456. testFLP_Printf.OnAddFilesFromDirectoryStarted(testFileList, "./");
  457. testFLP_Printf.OnDirectory(testFileList, "./", 9);
  458. testFLP_Printf.OnFile(testFileList, "./", "nonexist", 22);
  459. testFLP_Printf.OnFilePush("./Nonexist", 99, 99, 99, true, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  460. //FullyConnectedMesh2
  461. Console.WriteLine("FullyConnectedMesh2");
  462. FullyConnectedMesh2 testFullyConnectedMesh2 = FullyConnectedMesh2.GetInstance();
  463. testClient.AttachPlugin(testFullyConnectedMesh2);
  464. testFullyConnectedMesh2.AddParticipant(testServer.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS));
  465. Console.WriteLine(testFullyConnectedMesh2.GetConnectedHost());
  466. Console.WriteLine(testFullyConnectedMesh2.GetConnectedHostAddr());
  467. Console.WriteLine(testFullyConnectedMesh2.GetHostSystem());
  468. Console.WriteLine(testFullyConnectedMesh2.GetParticipantCount());
  469. uint outUint;
  470. testFullyConnectedMesh2.GetParticipantCount(out outUint);
  471. Console.WriteLine(outUint);
  472. Console.WriteLine(testFullyConnectedMesh2.IsConnectedHost());
  473. Console.WriteLine(testFullyConnectedMesh2.IsHostSystem());
  474. testFullyConnectedMesh2.ResetHostCalculation();
  475. testFullyConnectedMesh2.SetAutoparticipateConnections(true);
  476. workingRakStringCopy = "none";
  477. testFullyConnectedMesh2.SetConnectOnNewRemoteConnection(false, workingRakStringCopy);
  478. workingRakStringCopy.Dispose();
  479. //MessageFilter
  480. Console.WriteLine("MessageFilter");
  481. MessageFilter testMessageFilter = new MessageFilter();
  482. testClient.AttachPlugin(testMessageFilter);
  483. testMessageFilter.SetSystemFilterSet(testClient.GetSystemAddressFromIndex(0), 99);
  484. testMessageFilter.SetAllowRPC(false, "test", 99);
  485. testMessageFilter.SetAllowMessageID(true, 99, 99, 99);
  486. testMessageFilter.SetAutoAddNewConnectionsToFilter(99);
  487. testMessageFilter.SetFilterMaxTime(99, false, 0, 98);
  488. testMessageFilter.GetSystemFilterSet(testClient.GetSystemAddressFromIndex(0));
  489. testMessageFilter.GetSystemCount(99);
  490. testMessageFilter.GetSystemByIndex(99, 0);
  491. testMessageFilter.GetFilterSetIDByIndex(0);
  492. testMessageFilter.GetFilterSetCount();
  493. testMessageFilter.DeleteFilterSet(99);
  494. //NatPunchthroughClient
  495. Console.WriteLine("NatPunchthroughClient");
  496. NatPunchthroughClient testNatPunchthroughClient = new NatPunchthroughClient();
  497. testClient.AttachPlugin(testNatPunchthroughClient);
  498. testNatPunchthroughClient.GetPunchthroughConfiguration();
  499. testNatPunchthroughClient.GetUPNPExternalPort();
  500. workingRakStringCopy = testNatPunchthroughClient.GetUPNPInternalAddress();
  501. workingRakStringCopy.Dispose();
  502. testNatPunchthroughClient.GetUPNPInternalPort();
  503. testNatPunchthroughClient.OpenNAT(testServer.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS), testClient.GetSystemAddressFromIndex(0));
  504. NatPunchthroughDebugInterface_PacketLogger testNatPunchthroughDebugInterface_PacketLogger = new NatPunchthroughDebugInterface_PacketLogger();
  505. testNatPunchthroughClient.SetDebugInterface(testNatPunchthroughDebugInterface_PacketLogger);
  506. //NatPunchthroughDebugInterface_PacketLogger
  507. Console.WriteLine("NatPunchthroughDebugInterface_PacketLogger");
  508. testNatPunchthroughDebugInterface_PacketLogger.OnClientMessage("test");
  509. Console.WriteLine(testNatPunchthroughDebugInterface_PacketLogger.pl);
  510. //NatPunchthroughDebugInterface_Printf
  511. Console.WriteLine("NatPunchthroughDebugInterface_Printf");
  512. NatPunchthroughDebugInterface_Printf testNatPunchthroughDebugInterface_Printf = new NatPunchthroughDebugInterface_Printf();
  513. testNatPunchthroughClient.SetDebugInterface(testNatPunchthroughDebugInterface_Printf);
  514. testNatPunchthroughDebugInterface_Printf.OnClientMessage("test");
  515. //NatTypeDetectionClient
  516. Console.WriteLine("NatTypeDetectionClient");
  517. NatTypeDetectionClient testNatTypeDetectionClient = new NatTypeDetectionClient();
  518. testClient.AttachPlugin(testNatTypeDetectionClient);
  519. testNatTypeDetectionClient.DetectNATType(testClient.GetSystemAddressFromIndex(0));
  520. //NatTypeDetectionServer
  521. Console.WriteLine("NatTypeDetectionServer");
  522. NatTypeDetectionServer testNatTypeDetectionServer = new NatTypeDetectionServer();
  523. testServer.AttachPlugin(testNatTypeDetectionServer);
  524. testNatTypeDetectionServer.Startup("127.0.0.1","127.0.0.1","127.0.0.1");
  525. testNatTypeDetectionServer.Shutdown();
  526. //NetworkIDObject
  527. Console.WriteLine("NetworkIDObject");
  528. NetworkIDManager testNetworkIDManager = new NetworkIDManager();
  529. NetworkIDObject testNetworkIDObject = new TestNetworkIDObjectSubClass();
  530. testNetworkIDObject.SetNetworkIDManager(testNetworkIDManager);
  531. testNetworkIDObject.GetNetworkIDManager();
  532. testNetworkIDObject.GetNetworkID();
  533. //OnFileStruct
  534. Console.WriteLine("OnFileStruct");
  535. OnFileStruct testOnFileStruct = new OnFileStruct();
  536. testOnFileStruct.byteLengthOfThisFile = 99;
  537. testOnFileStruct.byteLengthOfThisSet = 99;
  538. testOnFileStruct.bytesDownloadedForThisFile = 99;
  539. testOnFileStruct.bytesDownloadedForThisSet = 99;
  540. testOnFileStruct.context = testFileListNodeContext;
  541. testOnFileStruct.fileIndex = 99;
  542. testOnFileStruct.fileName = "99";
  543. testOnFileStruct.numberOfFilesInThisSet = 99;
  544. testOnFileStruct.setID = 99;
  545. testOnFileStruct.fileData = testBuffer;
  546. Console.WriteLine(testOnFileStruct.fileData[0]);
  547. //OutOfBandIdentifiers
  548. Console.WriteLine("OutOfBandIdentifiers");
  549. OutOfBandIdentifiers testOutOfBandIdentifiers = new OutOfBandIdentifiers();
  550. //Packet
  551. Console.WriteLine("Packet");
  552. //PacketConsoleLogger
  553. Console.WriteLine("PacketConsoleLogger");
  554. PacketConsoleLogger testPacketConsoleLogger = new PacketConsoleLogger();
  555. testClient.AttachPlugin(testPacketConsoleLogger);
  556. LogCommandParser testLogCommandParser = new LogCommandParser();
  557. testPacketConsoleLogger.SetLogCommandParser(testLogCommandParser);
  558. //LogCommandParser
  559. Console.WriteLine("LogCommandParser");
  560. //PacketFileLogger
  561. Console.WriteLine("PacketFileLogger");
  562. PacketFileLogger testPacketFileLogger = new PacketFileLogger();
  563. string bigString = new string('c', 9999);
  564. testPacketFileLogger.StartLog("TestLog");
  565. testClient.AttachPlugin(testPacketFileLogger);
  566. testPacketFileLogger.FormatLine(ref bigString, "./", "none", 9, 9, 99, 99, 99, testClient.GetSystemAddressFromIndex(0), testClient.GetSystemAddressFromIndex(0), 99, 99, 99, 99);
  567. testPacketFileLogger.LogHeader();
  568. testPacketFileLogger.SetLogDirectMessages(false);
  569. testPacketFileLogger.SetPrefix("lv");
  570. testPacketFileLogger.SetPrintAcks(false);
  571. testPacketFileLogger.SetPrintID(false);
  572. testPacketFileLogger.SetSuffix("tr");
  573. testPacketFileLogger.WriteLog("gr");
  574. testPacketFileLogger.WriteMiscellaneous("lf", "mr");
  575. testClient.DetachPlugin(testPacketFileLogger);
  576. testPacketFileLogger.Dispose();
  577. foreach (string file in Directory.GetFiles("./", "TestLog*.csv"))
  578. {
  579. File.Delete(file);
  580. }
  581. //PluginInterface2
  582. Console.WriteLine("PluginInterface2");
  583. PluginInterface2 testPluginInterface2 = new PluginInterface2();
  584. //PluginReceiveResult
  585. Console.WriteLine("PluginReceiveResult");
  586. PluginReceiveResult testPluginReceiveResult = new PluginReceiveResult();
  587. //PunchthroughConfiguration
  588. Console.WriteLine("PunchthroughConfiguration");
  589. PunchthroughConfiguration testPunchthroughConfiguration = new PunchthroughConfiguration();
  590. //Raknet
  591. RakNet.RakNet.NonNumericHostString("12");
  592. //RakNetBPlusTreeRow
  593. Console.WriteLine("RakNetBPlusTreeRow");
  594. RakNetBPlusTreeRow testRakNetBPlusTreeRow = new RakNetBPlusTreeRow();
  595. //RakNetGUID
  596. Console.WriteLine("RakNetGUID");
  597. Console.WriteLine(testRakNetGUID.g);
  598. Console.WriteLine(testRakNetGUID.systemIndex);
  599. Console.WriteLine(testRakNetGUID == RakNet.RakNet.UNASSIGNED_RAKNET_GUID);
  600. Console.WriteLine(testRakNetGUID > RakNet.RakNet.UNASSIGNED_RAKNET_GUID);
  601. Console.WriteLine(testRakNetGUID < RakNet.RakNet.UNASSIGNED_RAKNET_GUID);
  602. //RakNetList, only one is needed
  603. //RakNetListSystemAddress
  604. Console.WriteLine("RakNetListSystemAddress");
  605. RakNetListSystemAddress testRakNetListSystemAddress = new RakNetListSystemAddress();
  606. testRakNetListSystemAddress.Insert(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS,"",0);
  607. testRakNetListSystemAddress.Preallocate(99, "", 0);
  608. testRakNetListSystemAddress.Push(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS,"",0);
  609. testRakNetListSystemAddress.RemoveAtIndex(0);
  610. testRakNetListSystemAddress.RemoveAtIndexFast(0);
  611. testRakNetListSystemAddress.Insert(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, "", 0);
  612. testRakNetListSystemAddress.Push(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, "", 0);
  613. testRakNetListSystemAddress.RemoveFromEnd();
  614. testRakNetListSystemAddress.Replace(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  615. testRakNetListSystemAddress.Size();
  616. testRakNetListSystemAddress.Pop();
  617. testRakNetListSystemAddress.Compress("", 0);
  618. testRakNetListSystemAddress.CopyData(testRakNetListSystemAddress);
  619. testRakNetListSystemAddress.Clear(false, "", 0);
  620. testRakNetListSystemAddress.Insert(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, "", 0);
  621. testRakNetListSystemAddress.Push(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS, "", 0);
  622. testRakNetListSystemAddress.Get(0);
  623. testRakNetListSystemAddress.GetIndexOf(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  624. //RakNetPageRow
  625. Console.WriteLine("RakNetPageRow");
  626. RakNetPageRow testRakNetPageRow = new RakNetPageRow();
  627. testRakNetPageRow.isLeaf = false;
  628. testRakNetPageRow.next = testRakNetPageRow;
  629. testRakNetPageRow.previous = testRakNetPageRow;
  630. testRakNetPageRow.size = 9;
  631. Console.WriteLine(testRakNetPageRow.isLeaf);
  632. Console.WriteLine(testRakNetPageRow.next);
  633. Console.WriteLine(testRakNetPageRow.previous);
  634. Console.WriteLine(testRakNetPageRow.size);
  635. //RakNetSocket
  636. Console.WriteLine("RakNetSocket");
  637. RakNetSocket testRakNetSocket = new RakNetSocket();
  638. testRakNetSocket.boundAddress = RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS;
  639. testRakNetSocket.remotePortRakNetWasStartedOn_PS3 = 0;
  640. testRakNetSocket.s = 99;
  641. testRakNetSocket.userConnectionSocketIndex = 0;
  642. Console.WriteLine(testRakNetSocket.boundAddress);
  643. Console.WriteLine(testRakNetSocket.remotePortRakNetWasStartedOn_PS3);
  644. Console.WriteLine(testRakNetSocket.s);
  645. Console.WriteLine(testRakNetSocket.userConnectionSocketIndex);
  646. //ReadyEvent
  647. Console.WriteLine("ReadyEvent");
  648. ReadyEvent testReadyEvent = new ReadyEvent();
  649. testClient.AttachPlugin(testReadyEvent);
  650. testReadyEvent.AddToWaitList(99, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  651. testReadyEvent.GetEventAtIndex(0);
  652. testReadyEvent.GetEventListSize();
  653. testReadyEvent.GetFromWaitListAtIndex(99, 0);
  654. testReadyEvent.GetReadyStatus(99, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  655. testReadyEvent.GetRemoteWaitListSize(99);
  656. testReadyEvent.HasEvent(99);
  657. testReadyEvent.IsEventCompleted(99);
  658. testReadyEvent.IsEventCompletionProcessing(99);
  659. testReadyEvent.IsEventSet(99);
  660. testReadyEvent.IsInWaitList(99, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  661. testReadyEvent.SetEvent(99, false);
  662. testReadyEvent.SetSendChannel(9);
  663. testReadyEvent.RemoveFromWaitList(99, RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  664. testReadyEvent.ForceCompletion(99);
  665. testReadyEvent.DeleteEvent(99);
  666. //RemoteSystemIndex
  667. Console.WriteLine("RemoteSystemIndex");
  668. RemoteSystemIndex testRemoteSystemIndex = new RemoteSystemIndex();
  669. testRemoteSystemIndex.index = 5;
  670. testRemoteSystemIndex.next = testRemoteSystemIndex;
  671. Console.WriteLine(testRemoteSystemIndex.index);
  672. Console.WriteLine(testRemoteSystemIndex.next);
  673. //Router2
  674. Console.WriteLine("Router2");
  675. Router2 testRouter2 = new Router2();
  676. testClient.AttachPlugin(testRouter2);
  677. testRouter2.EstablishRouting(testClient.GetGUIDFromIndex(0));
  678. testRouter2.GetConnectionRequestIndex(testClient.GetGUIDFromIndex(0));
  679. testRouter2.SetMaximumForwardingRequests(99);
  680. //SimpleMutex
  681. Console.WriteLine("SimpleMutex");
  682. SimpleMutex testSimpleMutex = new SimpleMutex();
  683. testSimpleMutex.Lock();
  684. testSimpleMutex.Unlock();
  685. //SocketDescriptor
  686. Console.WriteLine("SocketDescriptor");
  687. SocketDescriptor testSocketDescriptor = new SocketDescriptor();
  688. testSocketDescriptor.hostAddress = "127.0.0.1";
  689. testSocketDescriptor.port = 60002;
  690. testSocketDescriptor.remotePortRakNetWasStartedOn_PS3 = 0;
  691. Console.WriteLine(testSocketDescriptor.hostAddress);
  692. Console.WriteLine(testSocketDescriptor.port);
  693. Console.WriteLine(testSocketDescriptor.remotePortRakNetWasStartedOn_PS3);
  694. //TeamBalancer
  695. Console.WriteLine("TeamBalancer");
  696. TeamBalancer testTeamBalancer = new TeamBalancer();
  697. testClient.AttachPlugin(testTeamBalancer);
  698. testTeamBalancer.SetAllowHostMigration(false);
  699. testTeamBalancer.SetDefaultAssignmentAlgorithm(TeamBalancer.DefaultAssigmentAlgorithm.FILL_IN_ORDER);
  700. testTeamBalancer.SetHostGuid(testClient.GetGUIDFromIndex(0));
  701. testTeamBalancer.SetLockTeams(false);
  702. RakNetListUnsignedShort ushortList = new RakNetListUnsignedShort();
  703. ushortList.Push(5, "", 0);
  704. testTeamBalancer.SetTeamSizeLimits(ushortList);
  705. testTeamBalancer.SetForceEvenTeams(true);
  706. testTeamBalancer.CancelRequestSpecificTeam();
  707. testTeamBalancer.GetMyTeam();
  708. testTeamBalancer.RequestAnyTeam();
  709. testTeamBalancer.RequestSpecificTeam(0);
  710. //ThreadsafePacketLogger
  711. Console.WriteLine("ThreadsafePacketLogger");
  712. ThreadsafePacketLogger testThreadsafePacketLogger = new ThreadsafePacketLogger();
  713. testClient.AttachPlugin(testThreadsafePacketLogger);
  714. testThreadsafePacketLogger.FormatLine(ref bigString,"./","none",9,9,99,99,99,testClient.GetSystemAddressFromIndex(0),testClient.GetSystemAddressFromIndex(0),99,99,99,99);
  715. testThreadsafePacketLogger.LogHeader();
  716. testThreadsafePacketLogger.SetLogDirectMessages(false);
  717. testThreadsafePacketLogger.SetPrefix("lv");
  718. testThreadsafePacketLogger.SetPrintAcks(false);
  719. testThreadsafePacketLogger.SetPrintID(false);
  720. testThreadsafePacketLogger.SetSuffix("tr");
  721. testThreadsafePacketLogger.WriteLog("gr");
  722. testThreadsafePacketLogger.WriteMiscellaneous("lf","mr");
  723. //UDPForwarder
  724. Console.WriteLine("UDPForwarder");
  725. UDPForwarder testUDPForwarder = new UDPForwarder();
  726. testUDPForwarder.Startup();
  727. testUDPForwarder.GetMaxForwardEntries();
  728. testUDPForwarder.GetUsedForwardEntries();
  729. testUDPForwarder.SetMaxForwardEntries(99);
  730. ushort outUshort;
  731. testUDPForwarder.StartForwarding(testClient.GetSystemAddressFromIndex(0), testServer.GetSystemAddressFromIndex(0), 99, "127.0.0.1", out outUshort, out outUint);
  732. testUDPForwarder.StopForwarding(testClient.GetSystemAddressFromIndex(0),testServer.GetSystemAddressFromIndex(0));
  733. Thread.Sleep(2000);
  734. testUDPForwarder.StartForwardingThreaded(testClient.GetSystemAddressFromIndex(0), testServer.GetSystemAddressFromIndex(0), 99, "127.0.0.1", out outUshort, out outUint);
  735. testUDPForwarder.StopForwardingThreaded(testClient.GetSystemAddressFromIndex(0), testServer.GetSystemAddressFromIndex(0));
  736. Thread.Sleep(1000);
  737. //testUDPForwarder.threadOperationIncomingMutex=new SimpleMutex();
  738. // testUDPForwarder.threadOperationOutgoingMutex=new SimpleMutex();
  739. testUDPForwarder.threadRunning=false;
  740. testUDPForwarder.isRunning=false;
  741. testUDPForwarder.maxForwardEntries = 99;
  742. Console.WriteLine(testUDPForwarder.threadOperationIncomingMutex);
  743. Console.WriteLine(testUDPForwarder.threadOperationOutgoingMutex);
  744. Console.WriteLine(testUDPForwarder.threadRunning);
  745. Console.WriteLine(testUDPForwarder.isRunning);
  746. Console.WriteLine(testUDPForwarder.maxForwardEntries);
  747. testUDPForwarder.Shutdown();
  748. //UDPProxyClient
  749. Console.WriteLine("UDPProxyClient");
  750. UDPProxyClient testUDPProxyClient = new UDPProxyClient();
  751. UDPProxyClientResultHandler testUDPProxyClientResultHandler= new UDPProxyClientResultHandlerCB();
  752. testUDPProxyClient.SetResultHandler(testUDPProxyClientResultHandler);
  753. testClient.AttachPlugin(testUDPProxyClient);
  754. testUDPProxyClient.RequestForwarding(testClient.GetSystemAddressFromIndex(0), testServer.GetSystemAddressFromIndex(0),testClient.GetGUIDFromIndex(0),1);
  755. //UDPProxyCoordinator
  756. Console.WriteLine("UDPProxyCoordinator");
  757. UDPProxyCoordinator testUDPProxyCoordinator = new UDPProxyCoordinator();
  758. testClient.AttachPlugin(testUDPProxyCoordinator);
  759. testUDPProxyCoordinator.SetRemoteLoginPassword(rakStringTest);
  760. //UDPProxyServer
  761. Console.WriteLine("UDPProxyServer");
  762. UDPProxyServer testUDPProxyServer = new UDPProxyServer();
  763. UDPProxyServerResultHandler testUDPProxyServerResultHandler= new UDPProxyServerResultHandlerCB();
  764. testServer.AttachPlugin(testUDPProxyServer);
  765. testUDPProxyServer.SetResultHandler(testUDPProxyServerResultHandler);
  766. testUDPProxyServer.LoginToCoordinator(rakStringTest,testServer.GetSystemAddressFromIndex(0));
  767. testUDPProxyServer.udpForwarder = testUDPProxyServer.udpForwarder;
  768. Console.WriteLine(testUDPProxyServer.udpForwarder);
  769. //RakString
  770. Console.WriteLine("RakString");
  771. testRakString.AppendBytes(testBuffer, (uint)testBuffer.Length);
  772. Console.WriteLine(testRakString.C_String());
  773. Console.WriteLine(testRakString.C_StringUnsafe());
  774. testRakString.Clear();
  775. Console.WriteLine(testRakString.ContainsNonprintableExceptSpaces());
  776. workingRakStringCopy = testRakString.Assign("MayJuneJuly", 0, 3);
  777. workingRakStringCopy.Dispose();
  778. Console.WriteLine(testRakString);
  779. testRakString.CopyData(testRakString);
  780. testRakString.Serialize(testBitStream2);
  781. testRakString.Deserialize(testBitStream2);
  782. testRakString.SerializeCompressed(testBitStream2);
  783. testRakString.DeserializeCompressed(testBitStream2);
  784. workingRakStringCopy = testRakString.Assign("MayJuneJuly", 0, 3);
  785. workingRakStringCopy.Dispose();
  786. testRakString.Erase(0, 1);
  787. Console.WriteLine(testRakString.Find("y", 0));
  788. Console.WriteLine(testRakString.GetLength());
  789. Console.WriteLine(testRakString.IPAddressMatch("127.0.0.1"));
  790. Console.WriteLine(testRakString.IsEmailAddress());
  791. Console.WriteLine(testRakString.IsEmpty());
  792. Console.WriteLine(testRakString.MakeFilePath());
  793. testRakString.Printf();
  794. testRakString.RemoveCharacter('a');
  795. testRakString.Replace(0, 1, 'c');
  796. testRakString.Set("cat");
  797. testRakString.SetChar(0, 'r');
  798. testRakString.SQLEscape();
  799. Console.WriteLine(testRakString.StrCmp(testRakString));
  800. Console.WriteLine(testRakString.StrICmp(testRakString));
  801. workingRakStringCopy = testRakString.SubStr(0, 2);
  802. Console.WriteLine(workingRakStringCopy);
  803. workingRakStringCopy.Dispose();
  804. Console.WriteLine(testRakString);
  805. testRakString.TerminateAtFirstCharacter('y');
  806. testRakString.TerminateAtLastCharacter('y');
  807. Console.WriteLine(testRakString.ToLower());
  808. Console.WriteLine(testRakString.ToUpper());
  809. testRakString.Truncate(2);
  810. testRakString.URLDecode();
  811. testRakString.URLEncode();
  812. //PluginInterface2
  813. testUDPProxyServer.GetRakPeerInterface();
  814. //RakPeerInterface
  815. testPacket = testClient.AllocatePacket(5);
  816. testClient.AddToBanList("127.0.0.1", 10);
  817. testClient.AddToSecurityExceptionList("127.0.0.1");
  818. testBuffer = testPacket.data;
  819. testClient.AdvertiseSystem("127.0.0.1",60002,testBuffer,testBuffer.Length);
  820. testClient.AllowConnectionResponseIPMigration(false);
  821. testClient.CancelConnectionAttempt(testClient.GetSystemAddressFromIndex(0));
  822. testClient.ChangeSystemAddress(testClient.GetGUIDFromIndex(0),testClient.GetSystemAddressFromIndex(0));
  823. testClient.ClearBanList();
  824. uint[] testFrequencyTable = new uint[256];
  825. testClient.DisableSecurity();
  826. testClient.GetAveragePing(new AddressOrGUID(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS));
  827. SystemAddress[] remoteSystems;
  828. ushort numberOfSystems=4;
  829. testClient.GetConnectionList(out remoteSystems,ref numberOfSystems);
  830. testClient.GetExternalID(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  831. testClient.GetGUIDFromIndex(0);
  832. testClient.GetGuidFromSystemAddress(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  833. int inOutInt=testBuffer.Length;
  834. testClient.GetIncomingPassword(testBuffer,ref inOutInt);
  835. testClient.GetIndexFromSystemAddress(testClient.GetSystemAddressFromIndex(0));
  836. testClient.GetInternalID();
  837. testClient.GetLastPing(new AddressOrGUID(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS));
  838. testClient.GetLocalIP(0);
  839. testClient.GetLowestPing(new AddressOrGUID(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS));
  840. testClient.GetMaximumIncomingConnections();
  841. testClient.GetMaximumNumberOfPeers();
  842. testClient.GetMTUSize(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  843. testClient.GetNextSendReceipt();
  844. testClient.GetNumberOfAddresses();
  845. testClient.SetOfflinePingResponse(testBuffer, (uint)testBuffer.Length);
  846. testClient.GetOfflinePingResponse(testBuffer,out outUint);
  847. testClient.GetReceiveBufferSize();
  848. testClient.GetSplitMessageProgressInterval();
  849. testClient.GetStatistics(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  850. testClient.GetSystemAddressFromGuid(testClient.GetGUIDFromIndex(0));
  851. testClient.GetSystemAddressFromIndex(0);
  852. RakNetListSystemAddress systemAddressList= new RakNetListSystemAddress();
  853. RakNetListRakNetGUID guidList= new RakNetListRakNetGUID();
  854. testClient.GetSystemList(systemAddressList,guidList);
  855. testClient.GetTimeoutTime(RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  856. testClient.IncrementNextSendReceipt();
  857. testClient.InitializeSecurity("dsf","sdaf");
  858. testClient.IsActive();
  859. testClient.IsBanned("127.0.0.1");
  860. testClient.GetConnectionState(new AddressOrGUID(testClient.GetSystemAddressFromIndex(0)));
  861. testClient.IsInSecurityExceptionList("127.0.0.1");
  862. testClient.IsLocalIP("127.0.0.1");
  863. testClient.NumberOfConnections();
  864. testClient.Ping(testClient.GetSystemAddressFromIndex(0));
  865. testClient.PushBackPacket(testPacket,true);
  866. testClient.RemoveFromBanList("127.0.0.1");
  867. testClient.RemoveFromSecurityExceptionList("127.0.0.1");
  868. testClient.SendLoopback(testBuffer,testBuffer.Length);
  869. testClient.SendTTL("127.0.0.1",60002,5);
  870. testClient.SetIncomingPassword(testBuffer,testBuffer.Length);
  871. testClient.SetLimitIPConnectionFrequency(true);
  872. testClient.SetMaximumIncomingConnections(99);
  873. testClient.SetOccasionalPing(true);
  874. testClient.SetPerConnectionOutgoingBandwidthLimit(10);
  875. testClient.SetSplitMessageProgressInterval(99);
  876. testClient.SetTimeoutTime(99,RakNet.RakNet.UNASSIGNED_SYSTEM_ADDRESS);
  877. testClient.SetUnreliableTimeout(99);
  878. testClient.WriteOutOfBandHeader(testBitStream1);
  879. testClient.CloseConnection(testClient.GetSystemAddressFromIndex(0),false);
  880. testClient.Shutdown(20);
  881. RakPeer.DestroyInstance(testClient);
  882. RakPeer.DestroyInstance(testServer);
  883. //These need to be freed if used in the main function.
  884. testUDPForwarder.Dispose();
  885. testUDPProxyCoordinator.Dispose();
  886. FileList.DestroyInstance(testFileList);
  887. FileList.DestroyInstance(outFileList);
  888. FullyConnectedMesh2.DestroyInstance(testFullyConnectedMesh2);
  889. //If RakString is not freed before program exit it will crash
  890. rakStringTest.Dispose();
  891. testRakString.Dispose();
  892. workingRakStringCopy.Dispose();
  893. RakString.FreeMemory();
  894. Console.WriteLine("Demo complete. Press enter.");
  895. Console.Read();
  896. }
  897. }
  898. }
粤ICP备19079148号