我有一个 TCP 服务器/客户端,服务器侦听端口 5000,客户端传出端口是 39000。
我在服务器上设置了 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。我应该做什么?