Mercurial > hg > Database > Christie-sharp
view daemon/ChristieDaemon.cs @ 31:6399d784c6d1
add FizzBuzz Test
author | riono <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Apr 2021 18:25:15 +0900 |
parents | 96fc5e71274e |
children | 7575980bffc9 |
line wrap: on
line source
using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Threading.Tasks; using Christie_net.codegear; namespace Christie_net.daemon { public class ChristieDaemon { private int localPort; private AcceptThread acceptThread; public CodeGearManager cgm; public ChristieDaemon(int localPort, CodeGearManager cgm) { this.localPort = localPort; this.cgm = cgm; } public void Listen() { try { // listen on any address ipv4/ipv6 IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, localPort); Socket socket = new Socket(AddressFamily.InterNetwork , SocketType.Stream, ProtocolType.Tcp); socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); Console.WriteLine("ChristieDaemon, listen: bind to " + localEndPoint); socket.Bind(localEndPoint); socket.Listen((int)SocketOptionName.MaxConnections); // Socket ss = null; // ss = socket.Accept(); // ss.NoDelay = true; // Console.WriteLine("Accept " + ss.LocalEndPoint + ":" + ((IPEndPoint)ss.LocalEndPoint).Port); acceptThread = new AcceptThread(socket, cgm); Task.Factory.StartNew( () => acceptThread.Run(), TaskCreationOptions.LongRunning); } catch (IOException e) { Console.WriteLine(e.StackTrace); } } } }