annotate daemon/AcceptThread.cs @ 34:1236da135f79

update
author riono <e165729@ie.u-ryukyu.ac.jp>
date Tue, 27 Apr 2021 22:57:14 +0900
parents 7575980bffc9
children 98ee1ee1efb7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
1 using System;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
2 using System.Net;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
3 using System.Net.Sockets;
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
4 using System.Threading;
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
5 using Christie_net.codegear;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
6
21
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 namespace Christie_net.daemon {
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 public class AcceptThread {
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
9 private TcpListener listener;
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
10 public int counter = 0;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
11 public CodeGearManager cgm;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
12
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
13 public AcceptThread(TcpListener listener, CodeGearManager cgm) {
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
14 this.listener = listener;
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
15 this.cgm = cgm;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
16 }
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
17
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
18 public void Run() {
34
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
19 while (true) {
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
20 try {
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
21 TcpClient client = null;
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
22 client = listener.AcceptTcpClient();
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
23 client.NoDelay = true;
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
24
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
25 IPEndPoint endPoint = (IPEndPoint) client.Client.RemoteEndPoint;
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
26 IPAddress ipAddress = endPoint.Address;
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
27 IPHostEntry hostEntry = Dns.GetHostEntry(ipAddress);
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
28 Console.WriteLine("Accept " + hostEntry.HostName + ":" + endPoint.Port);
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
29
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
30 Connection connection = new Connection(client.Client, cgm);
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
31 string key = "accept" + counter;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
32
26
45ff08d59fda update CGM
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
33 IncomingTcpConnection incoming = new IncomingTcpConnection(connection);
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
34 Thread incomingThread = new Thread(incoming.Run);
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
35 incomingThread.Name = connection.GetInfoString() + "-IncomingTcp";
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
36 incomingThread.Start();
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
37
29
0cd2684e401b update InputDataGear and more
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
38 cgm.SetAccept(key, incoming);
34
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
39
26
45ff08d59fda update CGM
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
40 OutboundTcpConnection outbound = new OutboundTcpConnection(connection);
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
41 Thread outboundThread = new Thread(outbound.Run);
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
42 outboundThread.Name = connection.GetInfoString() + "-OutboundTcp";
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
43 outboundThread.Start();
25
52cb63c37218 update ChristieDaemon
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
44 counter++;
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
45 } catch (Exception e) {
25
52cb63c37218 update ChristieDaemon
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
46 Console.WriteLine(e.StackTrace);
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
47 }
34
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
48 }
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
49 }
21
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 }
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 }