Mercurial > hg > Database > Christie-sharp
view daemon/ChristieDaemon.cs @ 26:45ff08d59fda
update CGM
author | riono <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 12 Jan 2021 21:23:23 +0900 |
parents | 52cb63c37218 |
children | 96fc5e71274e |
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 IPHostEntry host = Dns.GetHostEntry("::"); IPAddress ipAddress = host.AddressList[0]; IPEndPoint localEndPoint = new IPEndPoint(ipAddress, localPort); Socket socket = new Socket(ipAddress.AddressFamily, 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); acceptThread = new AcceptThread(socket, cgm); Task.Factory.StartNew( () => acceptThread.Run(), TaskCreationOptions.LongRunning); } catch (IOException e) { Console.WriteLine(e.StackTrace); } } } }