Является ли GetHashCode() безопасным для использования?Использование GetHashCode() в сокете как временное UniqueID
У меня есть сервер сокетов, а затем клиентская программа, в которой клиентская программа подключается к серверному консольному приложению, размещенному на сервере, а затем я добавляю Socket в экземпляр сеанса (класс Session.cs), и в этом классе у меня есть строка называется
private readonly string uniqueSessionID; // UniqueID
Теперь мне нужно, чтобы быть уникальными для этого гнезда до тех пор пока я отправить сообщение с вас устраивает UniqueID
Я использую ниже функцию, чтобы получить вас устраивают UniqueID на клиентском приложении
string machineID = string.Empty;
ManagementObjectCollection mbsList = null;
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_processor");
mbsList = mbs.Get();
foreach (ManagementObject mo in mbsList)
machineID = mo["ProcessorID"].ToString();
ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""c:""");
dsk.Get();
machineID = machineID + dsk["VolumeSerialNumber"].ToString();
, после отправки его на сервер, после того, как сервер получит его, он заменит строку uniqueSessionID
новым идентификатором, а уникальный идентификатор temp будет идентифицироваться только при отправке permenant, я мог бы использовать IP-адрес, но я беспокоились, что два человека будут подключаться под одним и тем же WIFI или некоторым подобным.
В нижней строке вопроса есть, является ли GetHashCode() безопасным? Будет ли он оставаться неизменным в течение примерно 30 секунд, подключив и отправив первое сообщение, чтобы я мог идентифицировать идентификатор, который был установлен, когда они подключались при отправке первого сообщения?
У вас может быть только одно соединение с теми же 3 свойствами 1) Исходный IP-адрес 2) IP-адрес назначения) Номер порта. Таким образом, у Socket Client будет уникальный [порт, IP] для каждого удаленного подключения. – jdweng