teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2016/07/08 02:12

投稿

ryo_se
ryo_se

スコア68

title CHANGED
File without changes
body CHANGED
@@ -24,8 +24,47 @@
24
24
  実現方法をお教えいただければ幸いです。
25
25
 
26
26
 
27
+ ※追記
28
+ とりあえずご指定のように接続チェックの前に0バイトのSend呼び出しを行ってみましたが、
29
+ クライアント側の電源を落とした後でもConnectedでfalse判定がされません。
30
+ ブロック状態で止まっている様子はないのですが・・。
27
31
 
32
+ ```ここに言語を入力
33
+ rivate void ThreadMethod(object state)
34
+ {
35
+ // クライアントのソケット
36
+ System.Net.Sockets.Socket ClientSocket = (System.Net.Sockets.Socket)state;
37
+ int
38
+ try
39
+ {
40
+ while (Form1.SLTAlive)
41
+ {
42
+ Thread.Sleep(1);
28
43
 
44
+ byte[] tmp = new byte[1];
45
+ ClientSocket.Blocking = false;
46
+ ClientSocket.Send(tmp, 0, 0);
47
+ ClientSocket.Blocking = true;
48
+ Console.WriteLine(cnt);
49
+ //ソケットが接続断またはnullになっていた場合、スレッドを終了させる
50
+ if (ClientSocket.Connected == false || ClientSocket == null)
51
+ {
52
+ //クライアントと切断されました
53
+
54
+ ClientSocket.Shutdown(SocketShutdown.Both);
55
+ ClientSocket.Close();
56
+ ClientSocket = null;
57
+ break;
58
+ }
59
+
60
+
61
+ //略
62
+
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
29
68
  ```ここに言語を入力
30
69
  private void ThreadMethod(object state)
31
70
  {