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

回答編集履歴

2

原因と思われるものを先頭に

2020/02/19 08:20

投稿

KOZ6.0
KOZ6.0

スコア2740

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

追記

2020/02/19 08:20

投稿

KOZ6.0
KOZ6.0

スコア2740

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
+ こんな感じにすれば良いかと思います。