私はObjective-Cで簡単なRedisクライアントアプリケーションの作成に取り組んでいます。サーバー上のRedisと通信するには、サーバーにSSHで接続し、TCPソケットを開いてデータを送受信する必要があります。libssh2.orgdirect_tcpip.c
の例に従おうとしていますが、うまく機能するようになりました。コードを実行すると、次のように表示されます。
Waiting for TCP connection on... 0.0.0.0:6379
それで私はtelnetを使ってそれと通信しようとします:
telnet 0.0.0.0 6379
この方法でRedisに正常に接続し、対話することができます。はい。
次のステップは、プログラムでサーバーと通信し、アプリのUIからコマンドを送信できるようにすることですが、電話をかけるとプログラムがブロックさaccept()
れ、接続が確立されるのを待ってスタックします。これは問題です。プログラムで接続する必要がありますが、その方法がわかりません。
libssh2_session_set_blocking(session, 0);
以前に電話をかけてみaccept()
ましたが、何も変わらなかったようです。
私の目標は、アプリがリモートのRedisサーバーとできるだけ簡単に通信できるように転送を設定することであり、ソケットプログラミングはまったく初めてです。Redisにはセキュリティが組み込まれていないため、SSHトンネルが必要です。内部で通信することをお勧めします。
私を正しい方向に向けることができる人に感謝します!