private void ReadCallback(IAsyncResult ar)
{
recieveDone.Set();
String content = String.Empty;
StateObject state = (StateObject)ar.AsyncState;
Socket handler = state.workSocket;
int bytesRead = handler.EndReceive(ar);
if (bytesRead > 0)
{
state.sb.Append(Encoding.ASCII.GetString(state.buffer,
0, bytesRead));
content = state.sb.ToString();
String[] data = content.Split(';');
if(data[0].Equals("reply"))
{
ConnectionAcceptEventArgs e = new ConnectionAcceptEventArgs(data[1]);
OnConnectionAccept(e);
}
else if(data[0].Equals("startgame"))
{
ConnectionRequestEventArgs e = new ConnectionRequestEventArgs(data[1]);
OnConnectionRequest(e);
}
else if(data[0].Equals("step"))
{
StepEventArgs e = new StepEventArgs(deserializeToObject(state.buffer,5));
OnStep(e);
}
}
}