問題タブ [qtcpserver]
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++ - qt qtcpserver は、メイン関数で作成された場合にのみ機能します
QT QTcpServer ::incomingConnection(qintptr ハンドル) 起動しない?
サーバーは基本的に機能していますが、メイン関数内で作成された場合のみです。
働く:
動作しません (このコードはとにかくこのようには動作しません。それは単に私が何を意味するかを示すためです):
メイン関数内でクラス A を作成し、AI 内で tcpserver を作成すると、サーバー自体は起動されますが、incomingConnection() 関数は実行されません。A のコンストラクターから「Server start at port ...」というメッセージが表示されるため、これを確認できます。
つまり、メイン関数がクラス A と qtcpserver 関数を保持するようになりました。クライアントが接続すると、qtcpserver 関数は再び新しいスレッドを作成します。私がやりたいことは、スレッドによって受信されたメッセージをクラス A に保持することです。そのため、クラス A 内に qtcpserver を作成したいと考えています。
これについて誰か提案がありますか?A 内にサーバーを作成するにはどうすればよいですか?
ありがとう!
c++ - QTcpServer に特定のアドレスを設定できないのはなぜですか?
QTcpServer を特定のアドレスでセットアップしたいだけです。このコードで試してみましたが、うまくいきません...
これはエラーです:
誰でも私を助けることができますか?
c++ - QtNetwork:着信接続を検出しないのはなぜですか? (incomingConnection() は起動されません)
スレッド化されたqt-networkingに関するチュートリアル(ここにあります:http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html)に固執し、いくつかの小さな変更を加えてメインプログラムに統合しました. ただしincomingConnection()
、実行されることはありませんが、クライアントは接続できます。私はincomingConnection()で作業したいので、 で作業するのは時代遅れになりましたSIGNAL(newConnection())
が、これでも機能していません。
誰かが何がうまくいかないのか知っていますか?
ここに私の.h
そしてその.cpp
ここで、メインプログラムからの抜粋です。ここで、それが開始されます (ちなみに、 moveToThread()を省略しても問題ありません:
wifiの初期化後にこれらの行を追加しても、これでも影響はありません。
つまり、「incomming」は印刷されないため、作業できません。これは、チュートリアルのコードとほぼ 1 対 1 であり、私を混乱させます。
c++ - 別のスレッドで送受信するQTcpServer
QTフレームワーク(c ++)に、処理された(ローカル)データを他のサーバーにディスパッチし、他のサーバーで処理された同じ(外部)データを受信して比較するソフトウェアがあります。
大量のローカル データが処理されると、外部データがバッファリングされ、すべてのローカル データが送信されるまで比較プロセスに移行しない場合に問題が発生します。特定の時間枠でデータを比較する必要があるため、タイムアウトが発生します。
1 つのスレッドを使用してローカル データをディスパッチし、別のスレッドを使用して外部データを受信して比較するというアイデアがありました。QTcpServer は、同時読み取りと書き込みから保護するためにおそらくミューテックスが必要になります。
これは 1 つの接続で実行できますか? それとも、QT 環境で発送用に 1 つ、受信用に 1 つの接続を使用する方がよいでしょうか?
Fortune サーバーの例 http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.htmlを確認 しましたが、同じ接続での送受信に異なるスレッドを使用することが可能で論理的かどうかを知る必要があります。
PS。私はマルチスレッドに慣れていないので、いくつかの概念を誤解していたら申し訳ありません。
qt - QTcpServer::hadPendingConnections() は、新しい接続時に false を返します
QTcpServer
という名前のスケルトンがサブクラス化されたサーバーアプリケーションに取り組んでいますUeTcpServer
。サーバーアプリは正常に起動し、にブレークポイントを配置すると、経由ueSlotTcpServerNewConnection()
で接続されUeTcpServer
ますnewConnectionSignal
を使用してサーバーアプリに接続すると、スロットLinux terminal
内でブレークポイントがアクティブになります。ueSlotTcpServerNewConnection()
ただし、this->ueTcpServer()->hasPendingConnection()
返品しますfalse
。なんで?