Я немного новичок в виде сокета/сети, так что это может быть глупый вопрос.Несколько локальных процессов имеют один и тот же сокет
Я использую несколько локальных «клиентов» и локальный «сервер», используя протокол AF_INET.
Однако, когда я пытаюсь и все клиенты сервера, они, похоже, подключаются к одному и тому же сокету, делая чтение из одного бессмысленного.
Приведенный ниже код демонстрирует проблему независимо от любого кода сервера.
#include <iostream>
#include <sys/socket.h>
int main(int argc, char* argv[])
{
int sockfd; // socket file descriptor
sockfd = socket(AF_INET, SOCK_STREAM, 0);
std::cout<<"socket is "<<sockfd<<std::endl;
/* perform various i/o tasks */
return 0;
}
Розетка здесь не всегда 3
независимо от того, сколько из этих процессов работает.
Ожидается ли это? Если да, то что может быть лучшим способом заниматься такими вещами, как я хотел бы использовать интернет-протокол, чтобы обеспечить такую же функциональность по локальной сети или в Интернете.
'socket' возвращает дескриптор файла, который по умолчанию всегда исключает процесс. Это нормально и не влияет на количество соединений, которые вы можете выполнить на интерфейсе loopback. –
_ «когда я пытаюсь и всех клиентов на сервере» _? _ "они, кажется, соединяются в одном сокете, делая чтение из одного бессмысленного" _? –