Developer Network
Developer Network
Developer Network
ProfileText
ProfileText
:CreateViewProfileText:
サインイン
MSDN サブスクリプション
ツールを入手する
ダウンロード
Visual Studio
SDK
評価版ソフトウェア
無償ダウンロード
Office リソース
プログラム
サブスクリプション
管理者
学生
Microsoft Imagine
Microsoft Student Partners
ISV
創業間もないベンチャー企業
イベント
コミュニティ
Magazine
フォーラム
ブログ
Channel 9
ドキュメント
API とリファレンス
デベロッパー センター
サンプル コード
提供終了済みコンテンツ
申し訳ありません。リクエストされたコンテンツは削除されています。すぐに自動的にリダイレクトされます。
質問する
クイック アクセス
フォーラム ホーム
フォーラム ユーザーを参照
FAQ (よく寄せられる質問)
関連するスレッドの検索
Remove From My Forums
トップ回答者
SocketとNetworkStream
Visual Studio Development
>
Visual Basic
質問
0
サインインして投票
はじめまして。
さっそくですが、
現在、TCP/IP通信で悩んでおります。
Socket.Send メソッド
Dim instance As Socket
Dim buffer As Byte()
Dim returnValue As Integer
returnValue = instance.Send(buffer)
は上記のように正常に送信されたバイト数を returnValueで受け取る事が出来ますが、
NetworkStream.Write メソッド
Dim instance As NetworkStream
Dim buffer As Byte()
Dim offset As Integer
Dim size As Integer
instance.Write(buffer, offset, size)
では正常に送信されたバイト数を受け取る術はないのでしょうか?
TcpListener/TcpClient/NetworkStreamである程度作ってしまったので、今からSocket変えるのは・・・・・・
って状態なんす。
後者のやり方で、正常に送信されたバイト数が分かる方法があれば、教えてください。
よろしくお願いします。
2009年5月28日 7:51
返信
|
引用
回答
1
サインインして投票
「正常に」の基準がわかりませんが、送信側でわかる範囲で正常に送信完了した時点でWrite()メソッドが戻ってきます。何らかの失敗があった場合は必ず例外になります。
NetworkStream.Writeメソッド
に
Writeメソッドは、要求されたバイト数が送信されるか、SocketExceptionがスローされるまでブロックします。
とあるのを根拠としてあげておきますが、不安でしたら.NET Frameworkのソースコードをお読みください。
ちなみにSocket.Send()メソッドに送信バイト数の戻り値があるのは、non-blocking modeのためです。
回答としてマーク
ひよこプログラム
2009年5月31日 17:20
2009年5月28日 9:27
返信
|
引用
すべての返信
1
サインインして投票
「正常に」の基準がわかりませんが、送信側でわかる範囲で正常に送信完了した時点でWrite()メソッドが戻ってきます。何らかの失敗があった場合は必ず例外になります。
NetworkStream.Writeメソッド
に
Writeメソッドは、要求されたバイト数が送信されるか、SocketExceptionがスローされるまでブロックします。
とあるのを根拠としてあげておきますが、不安でしたら.NET Frameworkのソースコードをお読みください。
ちなみにSocket.Send()メソッドに送信バイト数の戻り値があるのは、non-blocking modeのためです。
回答としてマーク
ひよこプログラム
2009年5月31日 17:20
2009年5月28日 9:27
返信
|
引用
0
サインインして投票
どうも有難うございます。
IOExceptionって例外でCatchするかな?と思ってたのですが、
サーバー・クライアントとも同じPCでテストしていると、
NetworkStream.Write
でブレイク貼って、受け側のアプリを落としてから実行しても例外が発生しなかったので投稿したのですが、
サーバー・クライアントを別々のPCで行ったところ、IOExceptionの例外をCatchしました。
有難うございました。
2009年5月28日 10:11
返信
|
引用