Click here to Skip to main content
15,894,539 members
Articles / Programming Languages / C#

Design and Implementation of a High-performance TCP/IP Communications Library

Rate me:
Please Sign up or sign in to vote.
4.89/5 (57 votes)
3 Aug 2008CPOL13 min read 155.5K   4.4K   284  
A TCP/IP Communications Library, designed to handle client-server data transmission for a massive multiplayer online game.
using System;
using System.Reflection;
using System.Windows.Forms;
using System.Drawing;
using System.Collections.Generic;
using System.IO;
using System.ComponentModel;
using System.Collections;
using System.Text;
using System.Threading;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
using BrainTechLLC.ThreadSafeObjects;

namespace BrainTechLLC
{
	public delegate T TDelegate<T>(DateTime dt) where T : class;
	public delegate void VoidDelegate();
	public delegate int TDelegateGeneralInt<T>(T item);
	public delegate bool TDelegateGeneralBool<T>(T item);
	public delegate bool TDelegateGeneralBool<T, T2>(T item, T2 additional);
	public delegate void TDelegateGeneral<T>(T item);
	public delegate bool TDidSomethingDelegateGeneral<T1, T2>(T1 item, out T2 outItem);
	public delegate double TDelegateGeneralDouble<T>(T item);
	public delegate T2 TDelegatePlain<T, T2>(T item) where T : class;
	public delegate T1 TPopulate<T1>();
	public delegate string TDelegateGeneralString<T>(T item);

	public static class Extensions
	{
		public static Thread CreateAndRunThread(this ThreadStart ts) { Thread t = CreateThread(ts); t.Start(); return t; }

		public static Thread CreateThread(this ThreadStart ts)
		{
			Thread t = new Thread(ts);
			t.TrySetApartmentState(ApartmentState.MTA);
			t.Priority = ThreadPriority.Normal;
			t.IsBackground = true;
			return t;
		}
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Troppus Software
United States United States
Currently working as a Senior Silverlight Developer with Troppus Software in Superior, CO. I enjoy statistics, programming, new technology, playing the cello, and reading codeproject articles. Smile | :)

Comments and Discussions