問題タブ [sockets]
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 でソケットを使用した HTTP 1.1 持続接続
HTTP 1.1 を使用してサーバーで HTTP 要求を行い、接続を閉じない Java プログラムがあるとします。1 つの要求を作成し、ソケットにバインドした入力ストリームから返されたすべてのデータを読み取ります。ただし、2 番目の要求を行うと、サーバーから応答がありません (または、ストリームに問題があり、それ以上入力が提供されません)。リクエストを順番に(リクエスト、リクエスト、読み取り)行うと正常に機能しますが、(リクエスト、読み取り、リクエスト、読み取り)は機能しません。
なぜこれが起こっているのかについて、誰かが洞察を与えることができますか? (コード スニペットが続きます)。何をしても、2 番目の読み取りループの isr_reader.read() は -1 しか返しません。
質問への回答: はい、サーバーからチャンクされた回答を受信しています。外部の制限により、生のソケットを使用しています。
コードがごちゃごちゃしていて申し訳ありません - 私は記憶から書き直していたので、いくつかのバグを導入したようです。
したがって、コンセンサスは、(要求、要求、読み取り) を実行して、最後に到達したらサーバーにストリームを閉じさせるか、または (要求、読み取り、要求、読み取り) を実行した場合、ストリームの最後に到達する前に停止する必要があるということです。ストリームが閉じないようにします。
java - Javaで到達不能なホストを検出する最も簡単な方法は何ですか?
boolean isReachable(String host, int port)
以下の条件で以下のJUnitテストに合格する最速かつ最も正確な関数が欲しいです。タイムアウト値はJUnitテスト自体によって指定され、「到達不能」と見なされる場合があります。
注意:すべての回答はプラットフォームに依存しない必要があります。これは、 Windowsでpingを実行するためInetAddress.isReachable(int timeout)
にポートに依存しているため7
(ICMP pingはWindowsでは文書化されていない機能です)、このセットアップではこのポートがブロックされているため、機能しないことを意味します。
LANセットアップ:
thisMachine
(192.168.0.100
)otherMachine
(192.168.0.200
)- マシンが呼び出され
noMachine
ていないか、IPがありません192.168.0.222
(常に到達不能) - 両方のマシンがポートでApacheTomcatを実行しています
8080
。他のすべてのポートに到達できません(ポートを含む7
) example.com
(208.77.188.166
)はポートでWebサーバーを実行しており80
、LANがインターネットに接続されている場合にのみ到達可能です
場合によっては、LANがインターネットから切断されます。その場合、IPアドレスで呼び出されたローカルマシンのみが到達可能です(他のすべてのマシンは到達不能です。DNSはありません)。
すべてのテストはで実行されthisMachine
ます。
次のテストは、LANがインターネットから切断されている場合にのみ実行されます。
次のテストは、LANがインターネットに接続されている場合にのみ実行されます。
c# - インターネット経由でサーバーに接続できません
ローカルマシンでサーバーを実行して同じマシンで接続することはできますが、インターネットを介して別のコンピューターからサーバーに接続しようとすると、サーバーにアクティビティの兆候がなく、サーバーからの応答もありません。私がテストしているコンピューター上で。XPとVistaの両方を試し、ファイアウォールをオフにし、ポートを開き、管理者として実行しました。何も機能していません。:(
着信接続を受け入れるために使用しているコードは次のとおりです。
p>java - Jabber への Java 接続
TCPソケットを介して接続要求メッセージをjabberに書き込むために使用する必要があるストリームのタイプ。xml形式の文字列を書いています。デフォルトのソケット ストリームまたは dataoutputstream で動作するはずですが、動作しません。
perl - Perl で raw ソケットを使用するにはどうすればよいですか?
Perl でrawソケットを取得するにはどうすればよいでしょうか? また、それを使用するためのパケットを構築する最良の方法は何ですか?
ruby - Rubyを使用して空きTCPサーバーポートを見つけるにはどうすればよいですか?
1 回限りの HTTP サーバーを作成して単一のコールバックを処理しようとしていますが、Ruby で空いている TCP ポートを見つけるのに助けが必要です。
これは私がやっていることの骨組みです:
(最初の接続に標準入力をエコーし、その後終了します。)
リッスンする空きポートを自動的に見つけるにはどうすればよいですか?
これは、一意のジョブ ID でコールバックするリモート サーバーでジョブを開始する唯一の方法のようです。その後、このジョブ ID を照会してステータス情報を取得できます。元の設計者が、ジョブをスケジュールするときにジョブ ID を返すことができなかった理由はわかりません。複数のコールバックとの競合が発生する可能性があるため、単一のポートは使用できません。このようにして、ポートは +-5 秒間だけ使用されます。
c# - SocketオブジェクトとTcpClientオブジェクトの間で変換することは可能ですか?
これは、差し迫った必要性よりも単に好奇心に基づいた別のC#/。NETの質問です...
インスタンスがSocket
あり、それをより高いレベルのTcpClient
クラスでラップしたい場合、それは可能であり、どのように実行しますか?
逆に、のインスタンスがある場合TcpClient
、基礎となるものを取得することは可能Socket
ですか?
python - ソケット サイズの制限を正しく受け取りますか?
サーバーとして機能し、クライアントからデータを受け取るプログラムを Python で作成しています。データ量に厳しい制限を課すのは良い考えですか?
詳細情報: 特定のチャット プログラムでは、1 回の送信 (つまり、ユーザーが [送信] を押すたび) に送信できるテキストの量が制限されているため、問題は、これに正当な理由があるかどうかです。
c# - C# ストリーミング ソケット、メッセージを分離する方法は?
ちょっと長いタイトルですが…
私はこれらの例、特にメッセージのサイズをバイトストリームに書き込んだり読んだりする部分について見てきました
http://doc.trolltech.com/4.4/network-fortuneclient-client-cpp.html
http:/ /doc.trolltech.com/4.4/network-fortuneserver-server-cpp.html
しかし、私はC#でそれを理解できないようです。
これはまったくうまくいきません。誰かが私に正しい方向への微調整を与えることができますか?
c - C を使用して事前定義されたポートに接続する TCP ソケットを作成する方法
とても簡単な質問があります。特定のポートが現在使用されているかどうかをテストしたい。このために、TCPソケットをポートにバインドしたいと思います。接続が拒否された場合はポートが使用中であることを意味し、そうでない場合はポートが空いていることを意味します。
CでTCPソケットコードを書く方法を教えてください。私はsolarisプラットフォームを使用しています。
私はその非常に基本的なことを知っています。しかし、私はあなたの助けに感謝します. 前もって感謝します。