問題タブ [datagram]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - いくつかのJavaデータグラムソケットの質問
私は最近、Javaを使用したソケットプログラミングに飛び込みましたが、いくつかの一般的な質問があります。
bind()メソッド、およびconnect()とdisconnect()があります。unbind()はありません。これは、切断時にソケットがバインドされていないためですか?プログラムが終了すると、ガベージコレクションはこれを処理しますか?それとも、これは有効な質問でもありませんか?
また、DatagramSocketを作成するときに、ポートとアドレスのみを指定した場合、どのように異なりますか?私は、データが浮かんでログに記録されるときに、ネットワークからデータを収集するプログラムを作成しています。ローカルアドレスだけを使用する必要がありますか?ソケットの作成時にアドレスを使用できなかったため、パケットを収集できませんでしたか?
私はこれらのものの内部の働きについてより深く理解しようとしているだけです。
qt4 - QUdpSocket を使用してデータグラムを送信する
QUdpSocket を使用してデータグラムを送信しようとしています。以下は私が使用しているコードです:
ネットワーク アダプタが 1 つしかないコンピュータでこれを実行すると、問題なく動作するようです。ただし、複数のアダプターがある場合は、データグラムの送信に使用するアダプターを制御できる必要があります。次のようにソケットをバインドすると、次のことがわかりました。
次に、その IP に関連付けられたローカル ネットワークでデータグラムを強制的に送信できます (そうしないと、ランダムに 1 つを選択するように見えます)。しかし、'bind' 関数はパケットをリッスンするようにソケットを設定しますが、この時点ではあまり関心がありません。これは、使用するアダプターを制御する正しい方法ですか、それとももっと簡単な方法がありますか?
ありがとう
c++ - ループバック アダプターを介して同じソケットで sendto および recvfrom を実行するためのデータグラム (UDP) winsocket に関する C++ の問題
UDP ソケットを使用してデータを送信し、Windows ループバック アダプタを介して同じソケットでデータを受信しようとしています。ネットワークのプロパティで、ループバック アダプターに次の IP 192.168.1.1 を設定しました。
recvfrom 関数は、エラーを示す -1 を返します。また、wireshark を使用してループバック アダプタのトラフィックを監視していますが、ループバック アダプタに何も送信されていないようです。トラフィックが表示されません。
Windows ではループバック アドレス (127.0.0.1) を使用できないというのは本当ですか? いくつかのフォーラムでそれを見たので、ループバック アダプターを使用しようとしています。また、自分の IP に直接送信しようとしましたが、より良い結果は得られません。ところで、彼自身のIPに送信してデータを取り戻すことは可能ですか?
助けていただければ幸いです。念のため、ソケットプログラミングは初めてです。
以下は私のコードです:
java - Java DatagramSocket による 255.255.255.255 へのパケットの送信に失敗する
Java でネットワーク プログラムをプログラミングしていて、いくつかのパケットを 255.255.255.255 に送信したいのですが、ifconfig コマンドの出力によるとブロードキャスト アドレスである 192.168.1.255 に送信しても失敗します。しかし、それらを仲間の IP に送信すると、正常に動作します。
これが私のプログラムのコードです:
これを行うために DatagarmSocket と DatagramPacket を使用しました。これが Network の実装です。
例外はスローされていません。
アドホック ネットワークにいます。
私の仲間がkubuntu 11.04を使用している間、私はMAC OS X 10.6を使用しています。ifconfig の出力は次のとおりです。
en0 は、仲間に接続するために使用しているデバイスです。
簡単にしてください、私は初心者です:)
前もって感謝します。
java - Javaを書き込まないデータグラムチャネルソケット
簡単に言うと、接続されたソケットから、起動してから約10秒後までデータを受信できます。これを修正する解決策は、データストリームを継続するために「クライアント」(ARDrone)にデータを送信することです。そうしないと、電話へのデータの送信が停止します。ただし、私の現在のコードは、何らかの理由で、最初の接続時にのみクライアント(ARDrone)にデータを書き込み、その後は書き込みません。ソケットが通信している後もARDroneにデータを送信し続けるために必要です。
通話を移動しようとしましたchannel.register()
が、必要に応じてARDroneにデータを送信することはできませんでした。
接続の作成:
これが現在の送受信データ機能です。
.net - Udp Socket 安定送信、バースト受信
8 バイトのデータをできるだけ速く受信するように、非常に単純な UdpClient をセットアップしました。クライアントはデータを非常に高速に送信していますが、サーバーは約 0.5 秒という非常に不安定な間隔でデータを受信しています。受信時に停止し、突然約 10 個のデータグラムを連続して非常に高速に受信し、再び約 0.5 秒間停止します。ここで何が問題になる可能性がありますか?ファイアウォールをオフにしてみましたが、効果がありませんでした...
クライアント:
このコードは、蓄積されたバッファを継続的に送信しています。
サーバ:
私は今、その非常に原始的なコードを知っていますが、少なくとも例外をスローしていません...
Wiresharkで確認しましたが、何を探すべきか正確にはわかりません. UDP メッセージは問題なく送信されます。
UDPを抑制し、できるだけ速く送信しないことをお勧めします。私は目立った違いなしでそれを試しました。送信は遅くなりますが、受信は以前と同じくらいチャンキー/バーストです。
クライアントとレシーバーの両方が同じ開発マシン (Windows 7) 上にあります。
Receive-call 間の時間 (秒) を測定した結果の出力を次に示します。ご覧のとおり、約 30 回の反復ごとに 1 秒間スタックします。
等
アップデート
バッファが送信された後に遅延が発生したようです。送信コードはバッファを非常に迅速/流動的に送信しているように見えますが、Wireshark に表示されると、udp 起動の約 1 秒ごとに 1 秒の遅延があります。受信側のコードがこの遅延を引き起こしているようには見えませんが、既に存在しています。理解できません。
java - UDP経由で写真を送信する
2人のクライアントがウェブカメラを介して会話できるようにするアプリをJavaで作成したいと思います。それが機能する方法は、両方のクライアントが指定されたフレームレート(おそらく1秒あたり20)で写真を撮るWebカメラに接続し、サイズと解像度を減らしてから、UDPパケットを介して他のクライアントに送信することです。私の質問は、すべての画像を独自のデータグラムパケットで送信する必要があるかどうかです。私は彼らがせいぜい0.5キロバイトしか保持できないことを読んだので、すべての写真をそれだけ削減する必要がありますか?または、複数のパケットに分割する必要がありますか?
c - SOCK_DGRAM で双方向の UNIX ドメインソケットを作成するには?
シンプルな Unix データグラム サーバー/クライアントを作成しようとしていますが、いくつか問題があります。私が欲しいのは、データグラムソケットをリッスンし、受信したすべてのメッセージに返信を元の送信者に送信するサーバーです。最初に「サーバー」として使用し、クライアントを C で記述してみることにしsocat
ました。次のように socat を実行しています。
私の理解の範囲では、これは/tmp/test.socket
同じ文字列で受信したものすべてに耳を傾けて返信する必要がありますか? 次に、次のようなクライアント プログラムがあります (わかりやすくするためにエラー チェックを削除しています)。
パケットを送信し (動作します)、パケットを受信してから出力する必要がありますが、プログラムはパケットを受信できないようです。ここで何が間違っているのでしょうか、それとも Unix ソケットについて根本的な誤解がありますか? ありがとう!
java - ワイルドカードアドレスにバインドされたDatagramChannelを持つNoRouteToHostException
この組み合わせで問題が発生しました。送信データグラムチャネルと受信データグラムチャネルの両方を、システムが選択したポートとIP(ループバックでもローカルホストでもない)にバインドしたいと思います。次の例では、「古いI / O」別名(ケース1)を使用するとこれはすべて正常に機能しますが、 NIO別名(ケース3)を使用すると失敗します。DatagramSocket
NoRouteToHostException
DatagramChannel
私のAPIはすべてベースでInterruptibleChannel
あり、経由で作成されたソケットnew DatagramSocket
にはチャネルが関連付けられていないため、これをで機能させる必要がありDatagramChannel.open()
ます。愚かな回避策はケース2で、一時的にチャネルを「接続」します。したがって、これはケース3が失敗する理由に答えるのに役立つかもしれません...
java - UDPの送受信UDPパッケージに問題がありますか?
私はUDP接続について学ぶためにUDP接続についての簡単なプログラムを書こうとしています。私はいくつかの基本的なことを実装しましたが、送信したものを送信して返そうとすると、次のような問題に直面します。
私がこれをするとき; 文字列を送信する
サーバーに「asd」を返すとasdxxxxxxxxxxが返され、サーバーで取得したものを印刷しようとすると[B @ 5f186fab
どうすればこの問題を解決できますか?
より明確にするために、私はあなたに数行のコードを送ります、
クライアントで;
サーバー内;
皆さん、ありがとうございました
編集1 バッファに問題があると思いますが、解決方法がわかりません。