Skip to content

Instantly share code, notes, and snippets.

@msbukkuri
Created September 20, 2011 07:38
Show Gist options
  • Save msbukkuri/1228574 to your computer and use it in GitHub Desktop.
Save msbukkuri/1228574 to your computer and use it in GitHub Desktop.
Partial Code - Socket Implemenation
public void Listen(int port)
{
var localIP = new IPEndPoint(IPAddress.Any, port);
_listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
_listener.Bind(localIP);
_listenerThread = new Thread(new ThreadStart(listenForClients));
_listenerThread.Start();
}
private void listenForClients()
{
_listener.Listen(100);
while (true)
{
_listener.BeginAccept(OnClientConnected, null);
}
}
private void OnClientConnected(IAsyncResult ar)
{
Socket socket = null;
try
{
socket = _listener.EndAccept(ar);
_handler.Handle(new Connection(socket));
}
catch (Exception)
{
if (socket != null)
socket.Disconnect(true);
throw;
}
finally
{
if (socket != null)
socket.Disconnect(true);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment