問題タブ [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 - DatagramPacket によって受信された追加のバイト
初めて目にする問題があります。アプリでデータを送受信するために Java DatagramSocket (s) を使用しています。
これは私がデータを送信する方法です:
byt[] バッファを送信したときのサイズは 275 でしたが、受信アプリでパケットを受信し、receiverPacket から byte[] を取得すると、次のようになります。
受信したバイト数が 278 バイトで、追加の 3 バイトであることがわかりました。
これは大きな問題ではないように思えるかもしれませんが、実際には私にとって問題です.なぜこれが起こっているのか、そしてそれを解決する方法を教えてください.論理的な説明があれば役に立ちます.
ありがとう
java - データグラムソケットJavaを介してオブジェクトを送信する
複数のクライアントにブロードキャストしたいので、この例を実装しています。ソケットを使用して別のオブジェクト(シリアル化されている)を送信しようとすると、ソケット(例では)がオブジェクトを送信できないというエラーが発生します。データグラムソケットもオブジェクトを送受信できませんか?
java - NIOチャネルでの書き込みと送信の違いは何ですか?
Java NIOを使用してUDP通信システムを構築しており、Javadocを参照してAPIを探しています。チャネルには、書き込みプリミティブと送信プリミティブがあることに気付きました。私は両方のプロトタイプを作成して試しましたが、どちらもバッファを提供するという点で何も変わっていないようです。同様に、私が見た本はこの疑問を解決するのに役立たないように思われるので、私は尋ねようと思いました:channel.writeとchannel.sendの違いは何ですか?
前もって感謝します。
android - AndroidでUDPパケットを受信する
Android用のP2Pチャット/共有アプリケーションを開発しています。次のコードは UDP パケットを受信するためのものですが、最初のメッセージ/パケットのみが受信されて表示されます。(送信コードに問題はありません。) 以降のチャットメッセージが表示されません。while ループは、chahistory.setText(new String.... が実行された後に終了するようです。eg:chathistory.setText("test"); は実行されません。誰かエラーを指摘できますか?例外はスローされません。
c - このデータグラムソケットの何が問題になっていますか?
ここに、 Steamマスターサーバーにクエリを実行してゲームサーバーのIPのリストを取得するコードがあります。
(1秒に注意してくださいtimeout
。)
通信の奇妙な振る舞い以外は問題ありません。初めて動作するか、何度も何度もタイムアウトし続け、成功しないようです。
修正する方法は、単にもう一度実行することで、機能する可能性がありますが、勝手に機能しない理由がわかりません。
任意の入力をいただければ幸いです!
java - データグラム ソケットの setSotimeout
サーバーは、エコー サーバーのように機能します。クライアントはサーバーに 10 個のパケットを送信します (1 秒のギャップ)
クライアントがサーバーからパケットを受信すると、パケットが失われることがあります。
そのため、クライアントはパケットが到着するまで最大 1 秒待つ必要があります。パケットが 1 秒以内に到着しない場合、クライアントは他のパケットの送信を続行する必要があります。
これを達成するために .setSoTimeout をどのように使用しますか?
コード:
}
android - Android-DatagramSocketの最大バッファサイズを送信します
UDP経由でデータを送信するアプリがあります。最大/最適な送信バッファサイズを調べようとしています。2kパッケージの送信に成功しましたが、大きなパケットが問題でした。getSendBufferSizeを使用して、送信バッファーのサイズを確認してみました。110592バイトを返しました。それに近いものを送信しようとしてもエラーは発生しませんが、データはサーバーに到達します。
「許可された」送信バッファサイズを知るにはどうすればよいですか?
ありがとう。
c - 高水準言語でデータグラム パケットをのぞき見することは可能ですか?
現在、データグラム (udp) パケットを処理する ac プログラムを高水準言語に移植しようとしています。パケットは可変サイズになる可能性があるため、サイズを示す整数で始まります。c では、MSG_PEEK フラグを指定して recv を呼び出し、最初にこの値のみを受け取り、次に適切なバッファーを割り当てて、残りのパケットを読み取ります。コード(簡略化)は次のようになります。
巨大なバッファを割り当てるという一見一般的な方法を避け、より大きなパケットが到着しないことを望みます。それでは、データグラムをのぞき見したり、その完全な長さを事前に決定したりするようなことは、Python や Java などの高水準言語で可能ですか?
java - データグラムは常に完全に受信されますか?
c の recv または read、javas DatagramPacket クラス、pythons SocketServer などのほとんどのデータグラム受信関数には、受信したデータの量を調べる機能が含まれています。
c:
ジャバ:
パイソン:
これらは信頼できますか?または、パケットの断片化やネットワークの遅延などにより、メッセージの一部しか受信されない可能性はありますか?
つまり、可変長のデータ チャンクを udp 経由で送信し、相手側で受信した場合、これらの量の値は元のチャンクのサイズと正確に等しいのでしょうか?
編集:
ninjalj は良い点を指摘したので、ここに含めたいと思います。信号などによって受信機能が中断されるとどうなりますか? 2 つのスレッドが同時に同じソケットから受信しようとするとどうなりますか?
java - UDP DatagramSocket を使用して AIR アプリケーションを Java サーバーに接続する方法は?
UDP DatagramSocket を使用して Flash AIR アプリケーションを Java サーバーに接続しようとしていますが、その方法がわかりません。誰か助けてくれませんか?