public class Client
{
private Socket socket;
private AutoResetEvent autoResetEvent;
private IPEndPoint serverEndPoint;
private byte[] buffer;
public bool Connect()
{
//connection code
socket.Connect(serverEndPoint);
//start listening for data
Debug.Print("Listening");
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), null);
Thread.Sleep(1000);
Debug.Print("Return");
}
//Async method called when data is received.
private void OnDataReceived(IAsyncResult res)
{
//handle data
Debug.Print("Data received.");
//carry on receiving
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), null);
}
}