質問編集履歴

3

修正

2022/05/10 11:51

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  メインのインターフェースは固定回線で、サブのインターフェースにモバイル回線をつなげており、同時に別々のインターフェースでアクセスしたいので以下のコードを試しました。
2
2
  Windowsでデフォルトのルーティングがメイン回線のほうに設定してあるのでインターフェースを指定しない場合はメイン回線での通信となります。
3
- ここで`ServicePointManager.MaxServicePointIdleTime = 0;`の行を入れない場合は同じServicePointオブジェクトが使いまわされてしまいどちらも最初に作られるモバイル回線を設定したServicePointが使われてしまうのですが、その行を入れるときちんと別々の接続が作られてServicePointのハッシュコードも別々となり別々のインターフェースでアクセスとなります。
3
+ ここで`ServicePointManager.MaxServicePointIdleTime = 0;`の行を入れない場合は同じServicePointオブジェクトが使いまわされてしまいどちらも最初に作られるモバイル回線を設定したServicePointが使われてしまうのですが、その行を入れるときちんと別々のServicePointオブジェクトが作られてServicePointのハッシュコードも別々となり別々のインターフェースでアクセスとなります。
4
4
  なぜアイドル時間を0にするとServicePointが新たに作られるような動作になるのでしょうか。
5
5
 
6
6
  ```C#

2

修正

2022/05/10 11:46

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  メインのインターフェースは固定回線で、サブのインターフェースにモバイル回線をつなげており、同時に別々のインターフェースでアクセスしたいので以下のコードを試しました。
2
2
  Windowsでデフォルトのルーティングがメイン回線のほうに設定してあるのでインターフェースを指定しない場合はメイン回線での通信となります。
3
- ここで`ServicePointManager.MaxServicePointIdleTime = 0;`の行を入れない場合はコネションが使いまわされてしまいどちらも最初に作られるモバイル回線の接続でのアクセスになってしまうのですが、その行を入れるときちんと別々の接続が作られてServicePointのハッシュコードも別々となり別々のインターフェースでアクセスとなります。
3
+ ここで`ServicePointManager.MaxServicePointIdleTime = 0;`の行を入れない場合は同じServicePointオブジェが使いまわされてしまいどちらも最初に作られるモバイル回線を設定したServicePointが使われてしまうのですが、その行を入れるときちんと別々の接続が作られてServicePointのハッシュコードも別々となり別々のインターフェースでアクセスとなります。
4
4
  なぜアイドル時間を0にするとServicePointが新たに作られるような動作になるのでしょうか。
5
5
 
6
6
  ```C#

1

無駄なコードを削除

2022/05/10 11:41

投稿

abroad128
abroad128

スコア60

test CHANGED
File without changes
test CHANGED
@@ -85,7 +85,6 @@
85
85
  }
86
86
 
87
87
  Console.WriteLine("[2]" + Regex.Match(htmlSource, @"\d+.\d+.\d+.\d+").Value);
88
- req.ServicePoint.BindIPEndPointDelegate = null;
89
88
  }
90
89
 
91
90
  // 非同期の1回目リクエストが終わるのを待つ