我写了一个简单的客户端和服务器。 它们都可以配置为使用SSL。您可以在客户端和服务器中进行设置。 我的问题是,如果我尝试在没有SSL的情况下连接到使用SSL的服务器设置,则会建立连接但卡住了。 (当然......这很正常)。 我的客户如何知道他正在尝试使用SSL连接到没有SSL的服务器?反之亦然?
最好的解决方案是,如果服务器使用SSL,我的客户端会自动检测并执行正确的连接(TCP或SSL)。
预先找到任何答案=)
答案 0 :(得分:5)
使用不同的端口号进行SSL连接。这就是HTTP / HTTPS的使用方式。
或者
在协议中定义一个命令,将连接转换为SSL,例如STARTTLS
,基于能力协商。这是在SMTP中实现同样目标的一种方式。
答案 1 :(得分:0)
如果服务器使用SSL,最好的解决方案是我的客户端自动检测 或不进行正确的连接(TCP或SSL)。
不可能。 SSL连接中的第一个事件是来自客户端的消息,而不是来自服务器的消息。