Compile o código:
$ gcc client.c -o client
$ gcc server.c -o server
Execute o servidor sem argumentos:
$ ./server
ERROR, no port provided
Execute o servidor com um argumento:
$ ./server 3456
Em um terminal diferente:
$ ./client 3456
usage ./client hostname port
uma mensagem de uso indica como executar um binário, ou seja, quais argumentos dar a ele
$ ./client eee.lan 3456
Please enter the message:
desde que o servidor esteja escutando em todas as interfaces, você também pode usar
$ ./client 127.0.0.1 3456
Please enter the message: Hello World!
I got your message
então argumentos são strings que seguem o comando. No exemplo do gcc existem 3 argumentos: server.c -o server
a parte relevante do código é (servidor):
portno = atoi(argv[1]);
argv é o vetor (matriz) que contém todos os argumentos dados a um comando no prompt de comando. atoi converte uma string para um inteiro.