public string StartServer(int port) { IPAddress[] addresses = null; string serverHostName = ""; IPHostEntry ipEntry; try { serverHostName = _dns.GetHostName(); ipEntry = _dns.GetHostByName(serverHostName); } catch (Exception ex) { return(ex.Message); } addresses = ipEntry.AddressList; if (addresses == null || addresses.Length < 1) { return("Couldnt get local address."); } _listener.Bind(new IPEndPoint(addresses[0], port)); _listener.Listen(10); _listener.BeginAccept(new AsyncCallback(AcceptClient), _listener); return($"Listening On: {addresses[0]} : {port}"); }
public int AcceptConnection() { ISocketClientConnection newUser = SocketClientConnectionFactory.CreateClientConnection(); _SessionMembers.Add(newUser); _ServerSocket.BeginAccept(AcceptCallback, newUser.clientInformation); //create a better state object for information transfer. Future return(1); //success, if logic to check for failed listen, return zero. future }
public void Start(ISocket socket, UInt16 port) { Stop(); System.Net.IPEndPoint ipEnd = new System.Net.IPEndPoint(System.Net.IPAddress.Any, port); _listeningSocket = socket; _listeningSocket.Bind(ipEnd); // Accept only one connection for now... _listeningSocket.Listen(1); _listeningSocket.BeginAccept(new AsyncCallback(ClientConnect), null); }
public void ClientConnect(IAsyncResult asyn) { if (_listeningSocket == null) { return; } try { ISocket clientSocket = _listeningSocket.EndAccept(asyn); if (clientSocket != null) { SocketConnection com = new SocketConnection(clientSocket); OnClientConnect?.Invoke(com); } _listeningSocket.BeginAccept(new AsyncCallback(ClientConnect), null); } catch (SocketException ex) { Diagnostics.Trace("Exception during ClientConnect: {0}", ex.Message); Stop(); } }
private void AcceptClient(IAsyncResult arg) { _listener = (SocketAdapter)arg.AsyncState; CreateSocketForClients(_listener.EndAccept(arg)); _listener.BeginAccept(new AsyncCallback(AcceptClient), _listener); }