В man addrinfo
приведен пример кода для сервера UDP.
Я скомпилировал этот код и запустил его на терминале, используя a.out 9001
.
На втором терминале я запускаю netcat 127.0.0.1 9001
, надеясь, что это откроет интерактивный сеанс с локальным сервером.
И один из случаев, когда я пытался, это правильно, и я мог писать сообщения, которые будут отображаться сервером, через первый терминал сервер не будет печатать полученные сообщения, как я ожидал.
Но все остальное время команда netcat просто выполняется и ничего не происходит. Нет сообщений об ошибках и не выводится.
Вот что есть в терминале:
jsevillamol@jsevillamol-N551JK:~/Documentos/C$ netcat 127.0.0.1 9000
jsevillamol@jsevillamol-N551JK:~/Documentos/C$ netcat 127.0.0.1 8000
hola
hola
hola
hola
test
test
do not copy me
do not copy me
^Z
[4]+ Detenido netcat 127.0.0.1 8000
jsevillamol@jsevillamol-N551JK:~/Documentos/C$ netcat 127.0.0.1 9001
jsevillamol@jsevillamol-N551JK:~/Documentos/C$ netcat 127.0.0.1 9002
Когда я связываюсь с 8000, это когда интерактивная сессия, похоже, работает.
Кроме того, после остановки сервера я не могу снова запустить программу, используя тот же порт.
Что происходит?