У меня есть клиентский и серверный программы UDP. Поскольку я пытаюсь подключить более одного клиента для подключения к серверу с использованием разных компьютеров, я получаю положительный ответ, то есть я могу подключить свой сервер к нескольким клиентам.Более 1 клиент на эхо-сервере udp
Итак, на мой вопрос, когда я нарушаю ctrl + c, чтобы разбить сервер, я хочу напечатать IP-адреса всех клиентов, связанных с сервером в то время. Как это сделать? Я знаю, как печатать IP-адрес, когда один клиент подключен к серверу, но как мне печатать для нескольких клиентов?
Есть несколько проблем с тем, что вы хотите; Прежде всего, «перегрузка» «CTRL-C», чтобы сделать то, что не должно делать, сделает вашу программу очень странной и как вы отмените/убьете программу? Во-вторых, поскольку это UDP, у вас на самом деле нет * подключений * от клиентов, но вы все равно можете сохранить список всех клиентов, которые взаимодействуют с сервером. Что касается ловушки 'CTRL-C', выполните поиск терминов * signal * и * break *. –
UDP без установления соединения. В UDP нет концепции «клиент, подключенный к серверу». Вы можете печатать/хранить каждый клиентский IP-адрес при каждом обмене UDP, любое сообщение UDP содержит информацию отправителя (IP + -порт). Если вы используете 'recvfom', есть параметр, который может быть заполнен этими данными. См .: http://linux.die.net/man/2/recv –