如何将STunnel用于客户端在端口39000上发送的TCP服务器/客户端

我有一个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.我应该怎么做?     
已邀请:
您不需要为传出连接绑定套接字(除非您知道自己在做什么以及要做什么)。您只需要创建一个套接字并调用connect()。您将localhost(或127.0.0.1)作为目标地址传递,将39000作为目标端口传递。     
在您的代码段中,您将连接的客户端绑定到端口
39000
。不要那样做。只需发出
connect(2)
,因为@Eugine在他的回答中写道。     

要回复问题请先登录注册