Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
UDP/IPでバイナリデータ送信
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30291#CommentId83085
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2017/9/26 00:08:08
> Dim Target_IP As IPAddress = IPAddress.Parse("133.113.0.42")
…東芝?
> Binary Writerを使うプログラムを試したのですが
BinaryWriter はストリームに書き込みを行うためのクラスです。
しかし今回はそのストリームがありません。
先の回答でも、「GetSream を解さずに」と書いていますよね。
(とはいえご存知のようにそもそも GetSream というメンバーは無いのですが)
> Dim stream As New NetworkStream(MyUdpClient.Client, True) の部分で
私が NetworkStream を例示したのは、TCP の方だったハズ。
先の発言は『Client プロパティから基の Socket を取り出して使用する』案を提示したものです。
(ちなみに UdpClient.Send は、内部的には .Client.Send/SendTo 相当の処理を行っています)
UDP はそもそもストリーム指向のプロトコルでは無いでしょうし、先の回答も
TCPClient を真似てストリームとして扱うことを提案したわけではありません。
TCP であれ UDP であれ、元になっているのは Socket クラスであることを
紹介したかっただけなのですが…誤解させてしまったようですね。
> "ストリームに方向づけられていないソケットでは実行できない操作です。"
NetworkStream として開くためには、Socket クラスの SocketType プロパティが
Stream でなければなりません(かつブロッキングモードであること)。しかしながら、
TcpClient の方のソケットがストリーム(SocketType.Stream)であるのに対し、
UcpClient の方のソケットはデータグラム(SocketType.Dgram)となっています。
※ UDP = ユーザー データグラム プロトコル