割り込みが発生し、入力を待つ必要があるという問題があります。どのようにこれを行うにはどのようなアイデア?あなたが最初の呼び出しselect
に受信機を変更する必要がC++割り込みスレッドがユーザー入力を待っています
:man page of recvfromで示唆したように
bool run;
void partReceive() {
while(run) {
...
int rect_len = (int) recvfrom(servSockFD, buffer,
MAX_MESSAGE_LEN, 0, (struct sockaddr*) &newAddr, &slen);
...
}
}
void partCount() {
int i = 0;
while(run) {
i++;
if (i >= 5) {
run = false;
}
}
}
int main() {
run = true;
thread receive(partReceive);
thread count(partCount);
count.join();
receive.join();
return 0;
}
それがソケットからの入力を受け取るまでpartReceive()が開催されますので、これは、動作しません。..
何をするには? – Gnqz
私は 'partCount'について心配しています。なぜなら、実際に部品を受信するための接続がないからです。 – infixed
' recvfrom() 'を使用すると、UDPソケットが使用されていることを意味します。もしそうなら、単に 'run'をfalseにセットし、空のデータグラムをlistenソケットポートに' sendto() 'し、' partReceive() 'がそれを普通に受け取れるようにします。 –