Como faz um servidor de socket?

Eu estava desenvolvendo uma aplicação descentralizada para fim de estudo mas não sei como faz para programar um servidor de socket. Bom eu estava estudando isso e me deparei com algumas funções que eu perticulamente não entendi para que serve e as listarei a seguir:

  • socket();

  • setsockopt();

  • bind();

  • listen();

  • accept();

  • read();

  • send();

Bom alguém poderia me explicar a real função de cada uma e o q significa cada parametro recebido por elas?

Primeiro qual a linguagem java, c, c++, e etc?

  • Socket é o objeto, você vai determina a porta de comunicação e os outro métodos e variáveis que é necessário para haver a comunicação.
  • Bind faz a ligação e estabelece a comunicação entre o computadorX e o computadorY.
  • Listen método para escutar uma porta.
  • Accept precisa está habilitado para estabelecer a comunicação e o recebimento de arquivos.
  • Read lê uma requisição e pode tratar cada parâmetro recebido.
  • Send envia uma requisição para uma determinada.
    Para falar dos parâmetros tenho que saber da linguagem que está sendo utilizada.

No caso a linguagem seria c.

Como assim abandonadas?

Eu escrevi errado ai eu apaguei a resposta anterior.
Achei essa esplicação aqui boa talves te ajude: https://www.geeksforgeeks.org/socket-programming-cc/

Valeu, mas você conhece algum livro sobre isso?

Talves esse


Esse daqui tem bastante coisa também:
http://www.inf.ufpr.br/lesoliveira/download/c-completo-total.pdf

Valeu ai mano, obrigado.

De nada vc é um ancap legal quantos anos tu tem?

Gosto dessa ideia de aplicações descentralizadas, mas conheço mais de programação web. Com JSON e XML dá pra fazer comunicação entre sistemas heterogêneos, com linguagens diferentes por exemplo.