1

example.exe の概念を理解し、同じコンピューターで 5 回以上実行することを確認したい

example.exe は pear (送信ソケットと受信ソケットを持つ) を作成し、送信ソケットは固定ポートで送信し、受信ソケットは同じポートで受信します。

私の質問は、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);
}
4

0 に答える 0