問題タブ [udp]
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.
c++ - 別のプロセスからソケット (UDP) 経由でクライアントに応答する
「コマンドハンドラー」プロセスよりもサーバーがあります。UDP 経由でメッセージを受信し、発行された API (プロセスが使用する IPC メカニズムに関係なく) を介してそのプロセスと通信することにより、別のプロセスに実行する作業を委任します。私たちのシステムには、いくつかの協調プロセスがあります。次に、その API 呼び出しの結果が、コマンド ハンドラー プロセスからクライアントに返されます。
1 つのコマンドは、別のプロセスからクライアントに生成されるデータ ストリームを制御することです (「接続」メッセージ)。
これは機能するはずですか?クライアントの IP アドレスとポート番号を他のプロセスに送信すると、そのプロセスは新しいソケットを作成し、sendto を実行します...コードをトレースしたところ、すべて問題ないように見えますが、クライアントはまだブロックされています受信... コマンド ハンドラーから sendto を実行すると、応答が返されますが、新しいソケットからは返されません。
コード例を次に示します。
だから助けてください!
c# - 画像を 50 ミリ秒ごとに送信するには、TCP または UDP を使用する必要がありますか?
サーバーが50ミリ秒ごとにソケットを介してクライアントに画像(100kb)を送信するサーバークライアントモデルを使用して、C#アプリケーションを構築しています...
私は TCP を使用していましたが、このプロトコルのオーバーヘッドに加えて、クライアントのソケットに複数のイメージが存在することもありました。そして、各画像のバイトを分割する巧妙なメカニズムについてはまだ考えていません (実際には、最新のものだけが必要です)。
UDP を使用してみましたが、100kb の dgram は送信できず、64kb の dgram しか送信できないという結論に達しました。それでも、1500 バイトを超えて使用するべきではありません。そうしないと、パケットがネットワークに沿って分割され、パケットの一部が失われる可能性が高くなります。
だから今、私は少し混乱しています。クライアントがイメージを分離できるように、TCP を使用し続け、各イメージの末尾にエスケープ バイトを挿入する必要がありますか? それとも、UDP を使用して 1500 バイトの dgram を送信し、順序付けと回復のメカニズムを考え出す必要がありますか?
ここでの重要な目標は、画像を非常に高速に送信することです。クライアントが新しいものを受け取り続ける限り、途中でいくつかを失うことは気にしません.
または、別のプロトコルを使用する必要がありますか? 前もって感謝します!
java - 1 つの UDP データグラムで複数のデータを送信する
私は単純な IM システム (最も単純なバージョンの Windows メッセンジャーによく似ています) の作成に関するネットワーク プログラミングの割り当てに取り組んでいます。
仕様では、1 つのデータグラム パケットで 4 つのフィールドを超えるデータを送信する必要があると指定されています。これらは次のとおりです。
これらすべてのデータを 1 つのパケットにパックする方法を教えてください。
更新:これまでのところ助けてくれてありがとう、しかし、私は文字列文と文字列を持っていると言いますパケットに個別にパッチを当てる通常の方法からは
しかし、「from」文字列を文文字列とともに sendData に正確に追加するにはどうすればよいですか?
java - スレッド化されたUDPベースのサーバーをJavaで実装するにはどうすればよいですか?
スレッド化されたUDPベースのサーバーをJavaで実装するにはどうすればよいですか?
基本的に私が欲しいのは、複数のクライアントをサーバーに接続し、各クライアントに独自のスレッドを持たせることです。唯一の問題は、クライアントがサーバーに接続して新しいスレッドを生成しようとしているかどうかを確認する方法がわからないことです。
この場合、サーバーはメモリがなくなるまで新しいスレッドを生成します。これがServerThreadのコードです(クライアントが接続を試みるまでServerThreadの作成を停止するメカニズムがここに必要だと思います。
ですから、Javaプログラミングの父は助けてください。
c++ - UDP/IPとsendto/recvfromの戻り値に関する混乱
私は初めてC++でUDPソケットを使用していますが、それらがどのように機能するかがわかりません。sendto
/recvfrom
およびsend
/recv
は通常、実際に送信または受信されたバイト数を返すことを知っています。この値は任意に小さく(ただし少なくとも1つ)、ソケットのバッファーにあるデータの量(読み取り時)またはバッファーに残っている空き領域の量(書き込み時)によって異なります。
一度に1バイトが送受信され、データグラムが順不同で受信されることを保証するだけの場合sendto
、 UDPプロトコルの一貫性を維持するにはどうすればよいでしょうか。recvfrom
これは、メッセージのバイトを受信したときに任意にシャッフルできることを意味しませんか?メッセージが一度に送受信されることを保証する方法はありますか?
java - JavaでUDPを介してファイルを転送する
TCP/IP を使用する Java に次のアルゴリズムを実装しています。
現在、UDP Datapackets を使用してそれを実装するのに問題があります。これが私のコードです:
クライアント:
サーバ:
c++ - UDP プログラミングについて知っておくべきことは何ですか?
ソケットに接続する方法を意味するものではありません。UDP プログラミングについて知っておくべきことは何ですか?
- ソケット内の不良データについて心配する必要はありますか?
- 200 バイトを送信すると、120 バイトと 60 バイトが別々に取得される可能性があると想定する必要がありますか?
- 同じポートで別の接続が不正なデータを送信することを心配する必要がありますか?
- 通常、データが届かない場合、(通常) どれくらいの時間 (250 ミリ秒? 1 秒? 1.75 秒?) データが表示されない可能性がありますか?
私は本当に何を知る必要がありますか?
udp - LAN 外での UDP コードのテストに問題がありますか?
私は今後数日でudpを学んでいます。今週末、私はそれらの 72 時間の競争の 1 つに参加する予定で、その UDP コードをオンラインで動作させたいと考えています。大会中はインターネットがありません(誰かに電話してテストしてもらうことはありません)。
パケットが 2 回受信される、複数のフレームが受信されない (ただし、予想されるミリ秒の長さはわかりません)、推奨されるバイト サイズ (576) など、UDP に関するいくつかの問題を知っています。 UDPプログラミングについて?
しかし、LAN からインターネットに移行した後、どのようなことが起こりますか?
注: できるだけ早くいくつかのコードを実行し、オンラインでテストします。私の最終コードがどのように見えるかを願っていますが、いくつか見逃す可能性もあります。
linux - 同じソケットを介したUDPブロードキャストとユニキャスト?
UDP ソケットを開いてポートにバインドする Linux アプリケーションがあります。ソケットを介してユニキャスト パケットを送信しても問題はありませんでした。ブロードキャスト パケットを送信する機会があったので、ブロードキャスト パケットを通過させる SO_BROADCAST を有効にしましたが、ユニキャスト パケットもブロードキャストされていることに気付きました。これは UDP ソケットの予想される動作ですか、それとも何かを誤って構成した可能性が高いですか?