Я занимаюсь программированием сокетов в C
и хочу сделать следующее:
pid = fork();
if(pid == 0){
//child process
for(int m=0;m<2;m++){
j=0;
for(i=0;i<len_neighbors;i++){
socket_des1[i] = get_socket_connection_client(hostname1, neighbor_socket[i],(char *) "udp");
//sending data to other routers
cout<<"\nMessage: Sending routing table to neighbor, "<<neighbors[i];
if (send(socket_des1[i], &message1[0], message1.length(), 0) < 0){
perror("\nError:Message sending failed\n");
exit(1);
}
j++;
}
for(i=0;i<len_neighbors;i++){
close(socket_des1[i]);
}
sleep(30);
cout<<"Hello";
}
}else{
// code for parent process
}
Таким образом, в основном процесс отправит данные всем соседям и перейдет в режим сна.Здесь происходит то, что процесс отправляет данные первому соседу, а затем спит в течение 30 секунд.Как заставить процесс завершить отправку и затем выполнить оператор sleep(30)
.
Я использую разветвление для процесса.И приведенный выше код является частью дочернего процесса.