annotate daemon/AcceptThread.cs @ 62:12b7528000da

fix Thread to Task
author riono <e165729@ie.u-ryukyu.ac.jp>
date Sat, 29 Jan 2022 15:08:13 +0900
parents dc3f59937772
children 058d41dcec41
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;
62
12b7528000da fix Thread to Task
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
5 using System.Threading.Tasks;
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
6 using Christie_net.codegear;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
7
21
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 namespace Christie_net.daemon {
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 public class AcceptThread {
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
10 private TcpListener listener;
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
11 public int counter = 0;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
12 public CodeGearManager cgm;
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
13
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
14 public AcceptThread(TcpListener listener, CodeGearManager cgm) {
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
15 this.listener = listener;
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
16 this.cgm = cgm;
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
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
19 public void Run() {
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
20 try {
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
21 TcpClient client = null;
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
22 client = listener.AcceptTcpClient();
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
23 client.NoDelay = true;
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
24
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
25 IPEndPoint endPoint = (IPEndPoint) client.Client.RemoteEndPoint;
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
26 IPAddress ipAddress = endPoint.Address;
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
27 IPHostEntry hostEntry = Dns.GetHostEntry(ipAddress);
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
28 Console.WriteLine("Accept " + hostEntry.HostName + ":" + endPoint.Port);
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
29
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
30 Connection connection = new Connection(client.Client, cgm);
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
31 Console.WriteLine("connection:" + connection.GetInfoString());
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
32 string key = "accept" + counter;
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
33
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
34 IncomingTcpConnection incoming = new IncomingTcpConnection(connection);
62
12b7528000da fix Thread to Task
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
35 Task.Factory.StartNew(() => incoming.Run());
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
36
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
37 cgm.SetAccept(key, incoming);
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
38
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
39 OutboundTcpConnection outbound = new OutboundTcpConnection(connection);
62
12b7528000da fix Thread to Task
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
40 Task.Factory.StartNew(() => outbound.Run());
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
41 counter++;
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
42 } catch (Exception e) {
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
43 Console.WriteLine(e.StackTrace);
34
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
44 }
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
45 }
21
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 }
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 }