DOBON.NETプログラミング掲示板過去ログ
TCP/IP通信について
題名: TCP/IP通信について
著者: aki
日時: 2008/10/06 18:18:01
ID: 23137
この記事の返信元:
(なし)
この記事への返信:
[23143]
Re[1]: TCP/IP通信について
管理人
2008/10/07 3:35:35
ツリーを表示
環境/言語:[vista]
分類:[.NET]
こんばんわ.
TCP/IP通信のサーバープログラムを作成中です.
そこで質問なのですが,
サーバーとクライアントが接続しており,クライアントが勝手に切断してしまった場合,サーバーがクライアントが切断した!と判断するイベントなどがあれば教えていただけますでしょうか.
よろしくお願いします.
題名: Re[1]: TCP/IP通信について
著者: 管理人
URL:
http://dobon.net/
日時: 2008/10/07 3:35:35
ID: 23143
この記事の返信元:
[23137]
TCP/IP通信について
aki
2008/10/06 18:18:01
この記事への返信:
[23149]
Re[2]: TCP/IP通信について
aki
2008/10/07 10:13:58
ツリーを表示
■No23137に返信(akiさんの記事)
> サーバーとクライアントが接続しており,クライアントが勝手に切断してしまった場合,サーバーがクライアントが切断した!と判断するイベントなどがあれば教えていただけますでしょうか.
どのような方法を使っていらっしゃるのか分かりませんので何ともいえないのですが、通常は長さ0のデータを受信したときに切断されたと判断します。詳しくは、
TCPクライアント・サーバープログラムを作成する
http://dobon.net/vb/dotnet/internet/tcpclientserver.html
をご覧ください。
題名: Re[2]: TCP/IP通信について
著者: aki
日時: 2008/10/07 10:13:58
ID: 23149
この記事の返信元:
[23143]
Re[1]: TCP/IP通信について
管理人
2008/10/07 3:35:35
この記事への返信:
[23158]
Re[3]: TCP/IP通信について
管理人
2008/10/08 4:04:25
ツリーを表示
■No23143に返信(管理人さんの記事)
> どのような方法を使っていらっしゃるのか分かりませんので何ともいえないのですが、通常は長さ0のデータを受信したときに切断されたと判断します。詳しくは、
>
> TCPクライアント・サーバープログラムを作成する
> http://dobon.net/vb/dotnet/internet/tcpclientserver.html
>
> をご覧ください。
拝見させていただきました.ありがとうございます.
まず,現在私が作成している内容についてお話します.
TCP/IPの非同期通信を使用しております.
BackgroundWorker1_DoWorkイベントを使用し,非同期的にクライアントからの接続を受け入れるスレッドを作成しております.
それと,もう1つはmainスレッドです.
こちらでは,Do-Loopがずっとまわっています.
BackgroundWorker1_DoWorkでクライアントが接続したらフラグがTrueになり,
クライアントから読み取り可能なデータがあるかどうかを確認します.
あればサーバー側で受信します.基本的にクライアントからのデータはナシ=0となっています.
0の場合でも,接続しているということです.
管理人さんから教えて頂いた,
>通常は長さ0のデータを受信したときに切断されたと判断します。
は,使用できません.
ほかに,なにか方法がありましたら教えていただけますでしょうか.
よろしくお願いします.
題名: Re[3]: TCP/IP通信について
著者: 管理人
URL:
http://dobon.net/
日時: 2008/10/08 4:04:25
ID: 23158
この記事の返信元:
[23149]
Re[2]: TCP/IP通信について
aki
2008/10/07 10:13:58
この記事への返信:
(なし)
ツリーを表示
> 管理人さんから教えて頂いた,
> >通常は長さ0のデータを受信したときに切断されたと判断します。
> は,使用できません.
申し訳ありませんが、おっしゃっている意味がよく分かりません。しかし勘違いをされているのではないかと思いますので、繰り返しになりますが、もう一度説明します。
どのような方法で受信されているのか分かりませんが、仮に
TCPクライアント・サーバープログラムを作成する
http://dobon.net/vb/dotnet/internet/tcpclientserver.html
で説明しているのと同じようにNetworkStreamのReadメソッドで受信していたとすると、Readメソッドが0を返したときにクライアントが切断したと判断します。それ以外の方法であっても、0バイトのデータを受信した(受信していないですが...)ときにクライアントが切断したと判断します。
MSDNにも書いてありますので、ご覧ください。
http://msdn.microsoft.com/ja-jp/library/system.net.sockets.networkstream.read.aspx
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
こんばんわ.
TCP/IP通信のサーバープログラムを作成中です.
そこで質問なのですが,
サーバーとクライアントが接続しており,クライアントが勝手に切断してしまった場合,サーバーがクライアントが切断した!と判断するイベントなどがあれば教えていただけますでしょうか.
よろしくお願いします.