Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void OnReceive(IAsyncResult AResult)
- {
- Console.WriteLine("Receiving data...");
- SocketState vState = (SocketState)AResult.AsyncState;
- Socket vClient = vState.Client;
- if (vClient != null)
- {
- if (!vClient.Connected)
- {
- Console.WriteLine("Client was disconnected");
- RemoveClient(vState);
- }
- else
- {
- Console.WriteLine("Reading data...");
- int vRead = 0;
- try
- {
- vRead = vClient.EndReceive(AResult);
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message);
- }
- if (vRead > 0)
- {
- vState.CopyData(vRead);
- vState.DataBuffer.Position = 0;
- CommonMessage vReceived;
- while (vState.HaveData)
- {
- vReceived = null;
- try
- {
- vReceived = (CommonMessage)vState.ReadData();
- }
- catch (Exception e)
- {
- Console.WriteLine("Error in AMF decoding: " + e.Message);
- break;
- }
- finally
- {
- if (vReceived != null)
- {
- ProcessMessage(vReceived, vState);
- if (!vState.HaveData)
- vState.Reset();
- }
- else
- {
- Console.WriteLine("Object was not received");
- }
- }
- }
- vClient.BeginReceive(vState.Buffer, 0, SocketState.BUFFER_SIZE, SocketFlags.None, new AsyncCallback(OnReceive), vState);
- }
- else
- {
- Console.WriteLine("Reading zero");
- if (FOnDisconnect != null)
- FOnDisconnect(vClient);
- RemoveClient(vState);
- vClient.Close();
- }
- }
- }
- else
- {
- Console.WriteLine("Client was not assigned or disconnected");
- RemoveClient(vState);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment