サーバーがポート 5000 でリッスンし、クライアントの発信ポートが 39000 である TCP サーバー/クライアントがあります。
サーバーに Stunnel をセットアップしました。
[custom]
accept = 6000
connect = 5000
...ポート6000で接続を受け入れ、5000にリダイレクトします(私のServer.cがリッスンしています)。
次の方法でクライアントに STunnel をセットアップしようとしました。
[custom_cl]
accept = 39000
connect = 192.168.1.3:6000
...したがって、ポート 39000 からのデータを受け入れ、ポート 6000 でサーバー (192.168.1.3 にあるとしましょう) に送信します。
私のクライアントには次のコードがあります:
client_addr.sin_family = AF_INET;
client_addr.sin_port = htons(39000);
client_addr.sin_addr.s_addr = inet_addr("0.0.0.0");
bzero(&(client_addr.sin_zero),8);
if (bind(sock, (struct sockaddr *)&client_addr, sizeof(struct sockaddr))
== -1) {
perror("Unable to bind");
exit(1);
}
...常にポート 39000 で送信されるようにします。私の問題は、STunnel がポート 39000 でリッスンしているため、"Unable to bind: Address already in use" というメッセージが表示されることです。 ?