public void startListening() { //UPD broadcast client m_discoveryClient = new UdpClient(CJobDispatcher.m_discoveryPortHerd); HerdAgentUdpState state = new HerdAgentUdpState(); IPEndPoint shepherd = new IPEndPoint(0, 0); state.ip = shepherd; // state.herdAgent = this; m_discoveryClient.BeginReceive(DiscoveryCallback, state); //TCP communication socket m_listener = new TcpListener(IPAddress.Any, CJobDispatcher.m_comPortHerd); m_listener.Start(); HerdAgentTcpState tcpState = new HerdAgentTcpState(); tcpState.ip = shepherd; //tcpState.herdAgent = this; m_listener.BeginAcceptTcpClient(CommunicationCallback, tcpState); }