回答編集履歴
2
原因と思われるものを先頭に
answer
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 原因と思われるもの
|
2
|
+
StreamWriter を GC が回収するとき NetworkStream が Dispose されているようです。
|
3
|
+
```VB
|
4
|
+
Using TX1 As New StreamWriter(Client.GetStream, System.Text.Encoding.Default, 1024, True)
|
5
|
+
TX1.WriteLine(Data)
|
6
|
+
TX1.Flush()
|
7
|
+
End Using
|
8
|
+
```
|
9
|
+
leaveOpen = True を指定して開いたままにすれば良さそうです。
|
10
|
+
|
11
|
+
# その他
|
12
|
+
|
1
13
|
クライアント側が切断処理を行うと
|
2
14
|
|
3
15
|
```VB
|
@@ -36,14 +48,4 @@
|
|
36
48
|
|
37
49
|
Dim Clients As New List(Of TcpClient)
|
38
50
|
|
39
|
-
マルチスレッドで動作するので排他処理が必要です。
|
51
|
+
マルチスレッドで動作するので排他処理が必要です。
|
40
|
-
|
41
|
-
#追記
|
42
|
-
StreamWriter が破棄されるとき NetworkStream が Dispose されているようです。
|
43
|
-
```VB
|
44
|
-
Using TX1 As New StreamWriter(Client.GetStream, System.Text.Encoding.ASCII, 1024, True)
|
45
|
-
TX1.WriteLine(Data)
|
46
|
-
TX1.Flush()
|
47
|
-
End Using
|
48
|
-
```
|
49
|
-
こんな感じにすれば良いかと思います。
|
1
追記
answer
CHANGED
@@ -36,4 +36,14 @@
|
|
36
36
|
|
37
37
|
Dim Clients As New List(Of TcpClient)
|
38
38
|
|
39
|
-
マルチスレッドで動作するので排他処理が必要です。
|
39
|
+
マルチスレッドで動作するので排他処理が必要です。
|
40
|
+
|
41
|
+
#追記
|
42
|
+
StreamWriter が破棄されるとき NetworkStream が Dispose されているようです。
|
43
|
+
```VB
|
44
|
+
Using TX1 As New StreamWriter(Client.GetStream, System.Text.Encoding.ASCII, 1024, True)
|
45
|
+
TX1.WriteLine(Data)
|
46
|
+
TX1.Flush()
|
47
|
+
End Using
|
48
|
+
```
|
49
|
+
こんな感じにすれば良いかと思います。
|