Olá Gustavo, tudo bem? Os Sockets são uma forma de comunicação entre processos em uma rede, onde um processo envia dados para outro processo em outro computador ou na mesma máquina. Para estabelecer essa comunicação, é necessário que ambos os lados possuam uma aplicação que esteja esperando para receber a mensagem.
Em outras palavras, para enviar e receber dados através de sockets, é necessário que ambos os lados tenham uma aplicação que utilize sockets. Portanto, a resposta para a sua pergunta é que deve haver uma aplicação receptora para receber os dados que estão sendo enviados através de um socket. Essa aplicação pode ser uma outra instância do mesmo programa que está enviando os dados ou uma aplicação completamente diferente.
Uma aplicação que recebe dados através de sockets deve esperar pela chegada de dados e ter um mecanismo para lê-los. Isso pode ser feito utilizando as classes Socket e ServerSocket em Java. O ServerSocket fica esperando por conexões em uma determinada porta, enquanto o Socket é utilizado para se conectar a uma porta específica em outro computador.
Existem muitos cursos disponíveis na internet que ensinam sobre sockets e programação de rede em geral. Um curso que eu recomendo é o "Java Networking" da Oracle.