1

このコードを使用して、どのクライアントがサーバーにメッセージを送信するかを取得します。

recvfrom(s, buf, BUFLEN, 0, (struct sockaddr *) &si_other, &slen));

printf("Received packet from %s:%d\n", inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port));

そして、このコードを使用してこのクライアントにメッセージを送信できます。

sendto(s, "data", recv_len, 0, (struct sockaddr*) &si_other, slen);

しかし、このメッセージ(「データ」)を1つのクライアントだけでなく、すべてのクライアントに送信したいと思います。どうやってやるの ?

4

1 に答える 1

3

クライアントから受け入れた接続をリストで追跡し、全員にメッセージを送信する場合は、ループを使用してそのリストを繰り返し、目的のメッセージを各自に個別に送信します。

于 2012-12-23T14:08:07.937 に答える