annotate daemon/AcceptThread.cs @ 71:1169915705ab default tip

fix TopologyNode connect
author KaitoMaeshiro <aosskaito@cr.ie.u-ryukyu.ac.jp>
date Sun, 06 Feb 2022 16:47:41 +0900
parents 058d41dcec41
children
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() {
65
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
20 while (true) {
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
21 try {
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
22 TcpClient client = null;
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
23 client = listener.AcceptTcpClient();
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
24 client.NoDelay = true;
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
25
65
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
26 IPEndPoint endPoint = (IPEndPoint) client.Client.RemoteEndPoint;
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
27 IPAddress ipAddress = endPoint.Address;
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
28 IPHostEntry hostEntry = Dns.GetHostEntry(ipAddress);
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
29 Console.WriteLine("Accept " + hostEntry.HostName + ":" + endPoint.Port);
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
30
65
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
31 Connection connection = new Connection(client.Client, cgm);
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
32 Console.WriteLine("connection:" + connection.GetInfoString());
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
33 string key = "accept" + counter;
33
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
34
65
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
35 IncomingTcpConnection incoming = new IncomingTcpConnection(connection);
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
36 Task.Factory.StartNew(() => incoming.Run());
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
37
65
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
38 cgm.SetAccept(key, incoming);
56
dc3f59937772 remote dynamic
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 45
diff changeset
39
65
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
40 OutboundTcpConnection outbound = new OutboundTcpConnection(connection);
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
41 Task.Factory.StartNew(() => outbound.Run());
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
42 counter++;
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
43 } catch (Exception e) {
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
44 Console.WriteLine(e.StackTrace);
058d41dcec41 fix AcceptThread loop
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 62
diff changeset
45 }
34
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
46 }
22
970c7f587126 update AcceptThread
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 21
diff changeset
47 }
21
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 }
d488eb23a29f add ThreadTest
riono <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }