Sockets 重新启动套接字连接失败
下面是重新启动套接字连接服务器的代码,因此当出现干扰时,它可以重新连接,但在某些点或情况下它无法重新连接/连接下面的代码问题中可能存在什么问题Sockets 重新启动套接字连接失败,sockets,serversocket,asyncsocket,socketexception,Sockets,Serversocket,Asyncsocket,Socketexception,下面是重新启动套接字连接服务器的代码,因此当出现干扰时,它可以重新连接,但在某些点或情况下它无法重新连接/连接下面的代码问题中可能存在什么问题 /*** restarting the server by capturing the SIGHUP signal ***/ int isfirst;`enter code here` char **command_args; void sig_hangup(int signum) { if ( isfirst ) {
/*** restarting the server by capturing the SIGHUP signal ***/
int isfirst;`enter code here`
char **command_args;
void sig_hangup(int signum)
{
if ( isfirst )
{
isfirst = 0;
fprintf(stderr, "Parent died\n");
}`enter code here`
else /* Restart! */
{
fprintf(stderr, "Restarting...\n");
/*** Kill all existing child processes ***/
execv(command_args[0], command_args);
fprintf(stderr, "Could not restart!!!\n");
abort();
}
}
void child(void)
{ struct sigaction act;
bzero(&act, sizeof(act));
act.sa_handler = sig_hangup;
act.sa_flags = SA_RESTART;
/* if ( sigaction(SIGHUP, &act, 0) != 0 )
perror("Can't capture SIGHUP");*/
for (;;)
{
fprintf(stderr, "[pid=%d] I'm still here\n", getpid());
sleep(1);
}
exit(0);
}
int main(int count, char *strings[])
{
isfirst = 1;
command_args = strings;
if ( fork() == 0 )
child();
sleep(1);
return 0;
}
“无法重新连接/连接”不是适当的问题描述。请重试。另外,请使此代码更具可读性-有一些“在此处输入代码”的剩余内容。如果它的语法也被突出显示,那就太好了。不,问题是99%它可以重新连接,但在某些情况下它不能重新连接,我应该手动完成。分析他们的代码中是否有任何错误是执行进程无法重新连接还是父进程无法重新启动?