I want my app to talk to the server without encryption before issuing a STARTTLS and then upgrade the socket to be encrypted after that. Can I connect to a port (E.g., 5222) and use STARTTLS to request TLS using java? If so, which Socket object should I use for that?
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- Multiple sockets for clients to connect to
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
@Jan's answer was helpful (and I voted for it), but I had to tweak it a bit to get it working for me:
Tested with Java 7 and GMail (smtp.gmail.com) on port 587.
Here's a possible improvement: If your code is for server side instead of client side, add this, and it will work fine:
Sure you can. Use your SSLSocketFactory to create a socket wrapping an existing regular java.net.Socket: