Sugiero que eches un vistazo a la documentación oficial, donde explican sockets con ejemplos en https://docs.oracle.com/javase/tutorial/networking/sockets/index.html
Login using Facebook Login using GitHub Login using Google