/// <summary> /// Moded method to also take an HTTP port /// </summary> /// <param name="callMe"></param> /// <param name="port"></param> public static void ServerAwaitingClientLoop(NetworkAction callMe, int port) { lstn = new TcpListener(IPAddress.Any, Networking.HTTP_PORT); lstn.Start(); NewConnectionState cs = new NewConnectionState(lstn, callMe); cs.listener = lstn; cs.callMe = callMe; lstn.BeginAcceptSocket(AcceptNewClient, cs); }
private static void ConnectionRequested(IAsyncResult ar) { NewConnectionState cs = (NewConnectionState)ar.AsyncState; Socket socket = cs.Listener.EndAcceptSocket(ar); //Will have to change this ID to the client specific ID in server SocketState ss = new SocketState(socket, 0); ss.theSocket = socket; ss.callBack = cs.callBack; //??? isn't this redundant ss.callBack(ss); cs.Listener.BeginAcceptSocket(ConnectionRequested, cs); }
public static void AcceptNewClient(IAsyncResult ar) { NewConnectionState cs = (NewConnectionState)ar.AsyncState; socket = cs.listener.EndAcceptSocket(ar); SocketState ss = new SocketState(socket, AssignID()); ss.theSocket = socket; ss.callMe = cs.callMe; ss.callMe(ss); Console.WriteLine("Connection Made!"); cs.listener.BeginAcceptSocket(AcceptNewClient, cs); }
public static void StartServer(Action <SocketState> call) { //byte[] byteip = Encoding.ASCII.GetBytes(Dns.GetHostName()); /* IPAddress localaddr = GetLocalIPAddress(); * * Console.WriteLine("Local address is " + localaddr.ToString()); * * TcpListener listener = new TcpListener(localaddr, DEFAULT_PORT); */ TcpListener listener = new TcpListener(DEFAULT_PORT); listener.Start(); NewConnectionState cs = new NewConnectionState(); cs.Listener = listener; cs.callBack = call; Console.WriteLine("Listening..."); listener.BeginAcceptSocket(new AsyncCallback(ConnectionRequested), cs); }