Я получаю сообщение об ошибке, потому что я отправлял другой объект в методе BeginReceive в случае отправки StateObject
Correct method:
Socket.BeginReceive(StateObject.DataBuffer, 0, (int)StateObject.DataLength,
SocketFlags.None, new AsyncCallback(this.Receive),StateObject);
Предполагалось, что последний параметр имеет тип StateObject, и я отправляю объект как iне было известно, что отправить для этого параметра.