【Qt】サブネットを超えたTCPの接続方法について
-
はじめまして、戸塚と申します。
現在Windowsアプリケーションを作成しており、Qt5.10.0にてサブネットを超えたTCP接続をしたいと思っております。
環境は以下の通りです。
・Windows10
・VS2015 (C++)
・Qt5.10.0
・オンボードとUSBを含めて、複数のネットワークカードが利用可能な状態
・1つのネットワーク設定を固定IP Addressとして、以下のように接続
[PC(192.168.1.228) == (192.168.1.1) Router (192.168.100.1) == (192.168.100.26)]現在QTcpSocketを利用してTCPの接続を試みておりますが、
同一サブネット内であれば問題ありませんが、別サブネットに対して行うと接続に失敗しているようです。ソースコードは以下のようになっています。
@
/* 本来はクラスをオーバーライドしていますが、伝わりやすいように変数にしています */
QTcpSocket socket;/* TCP接続 */
QHostAddress target( "192.168.100.26" );
socket.connectToHost( target, 13200 );if( !socket.waitForConnected( 5000 ) ){
return false; // ここでタイムアウトしてしまう
}
@またLocalAddressの設定の問題を疑い、自身のローカルアドレスの設定を試してみましたが
問題は解決しませんでした。
以下がサンプルとなります。@
/* 本来はクラスをオーバーライドしていますが、伝わりやすいように変数にしています */
QTcpSocket socket;/* 自身のLocalAddress設定 */
QHostAddress pcAddress( "192.168.1.228" );
socket.setLocalAddress( pcAddress );
socket.setLocalPort( 0 );/* TCP接続 */
QHostAddress target( "192.168.100.26" );
socket.connectToHost( target, 13200 );if( !socket.waitForConnected( 5000 ) ){
return false; // ここでタイムアウトしてしまう
}
@補足としては、コマンドプロンプトでのPing[ipconfig 192.168.100.26 -S 192.168.1.228]や、送信元IP Addressが指定可能なツールであれば、接続ができれており、WireSharkにてパケットの送受信も確認できております。
何かQtの足りない設定や、使用方法等に問題がありますでしょうか?
ご回答宜しくお願いいたします。