UDB для пиринга на одной машине

Я хочу убедиться, что я понимаю концепцию
у нас есть example.exe, и мы будем запускать его 5 и более раз на одном компьютере

example.exe создаст грушу (в которой есть сокет отправки и получения)
и отправляющий сокет отправляет на фиксированный порт, а принимающий сокет получает на тот же порт

мой вопрос, что при запуске example.exe 5 раз
5 пиров будут созданы на той же «машине» с тем же фиксированным портом !!! как это происходит!
и я попробовал код, и он работает на машине, что означает тот же IP-адрес!

вот код

Приемная розетка

sockaddr_in RecvAddr;
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(PORT);
RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY);

cout << RecvAddr.sin_addr.s_addr << endl;int broadcastValue = 1;
if (setsockopt(receivingSocket, SOL_SOCKET, SO_REUSEADDR, (char*)&broadcastValue, sizeof(broadcastValue)) == SOCKET_ERROR)
exit(EXIT_FAILURE);

int iResult = 0;
iResult = bind(receivingSocket, (SOCKADDR *)& RecvAddr, sizeof (RecvAddr));
if (iResult != 0) {
exit(EXIT_FAILURE);

Отправка сокета

sockaddr_in destinationAddress;
destinationAddress.sin_family = AF_INET;
destinationAddress.sin_addr.s_addr = INADDR_BROADCAST;
destinationAddress.sin_port = htons((unsigned short)PORT);

if (sendto(sendingSocket, message.c_str(), message.length(), 0, (struct sockaddr*) &destinationAddress, sizeof(destinationAddress)) == SOCKET_ERROR)
{

exit(EXIT_FAILURE);
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]