Мне очень жаль, но я не знал, что назвать его.Как добавить int в ранее созданный буфер, который содержит строку
Что я делаю сейчас:
char ipstr[INET6_ADDRSTRLEN];
struct sockaddr_in *s = (struct sockaddr_in *)&addr;
inet_ntop(AF_INET, &s->sin_addr, ipstr, sizeof ipstr);
Так что, если я печатаю, что у меня есть IP-адрес от клиента, который просто подключен к серверу.
Теперь я верю, что делаю это глупо. На данный момент я использую это как идентификатор для идентификации субкриптора (только что подключенного клиента). Но у меня есть несколько проблем с этим, главное, что происходит, если случайно я получаю два одинаковых адреса (как тупой пример, я использую свой собственный код осторожно, так как я подключаюсь к себе, используя 127.0.0.1).
И я подумал: я мог бы указать адрес и порт, чтобы определить, кто является подписчиком.
И, таким образом, идея добавления int в этот буфер. Очевидно, мне придется создать немного больший буфер, но дело в том, что я действительно не знаю, как ... «положить» int.
И, пожалуйста, если кто-нибудь может сказать мне лучшую идею идентифицировать клиентов/подписчиков, я был бы рад, я думал о многих глупых идеях, и все это вызывает небольшие неприятности.
Чтобы добавить к этому, я знаю, что номер порта после создания этого буфера конечно, поэтому я думал, что делать
char nombreSubscriptor[INET6_ADDRSTRLEN+sizeof(int)];
, но если бы я, что я считаю, что это не было бы места достаточно, как только я изменю int на string или char array или что угодно.
Где код, который вы пробовали? – Deanie
Я отформатировал его неправильно, изменил его. Я попробовал char nombreSubscriptor [INET6_ADDRSTRLEN + sizeof (int)]; Который я считаю, что это довольно ужасная идея (и это не работает явно), но, глядя вокруг, все, что я нашел, перебирает каждое число, чтобы поместить его в ansii, а затем помещать этот массив string/char в более крупный. И снова, так как я считаю, что все это всего лишь плохая идея, которую я задал здесь @Deanie – keont