⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginservd.c

📁 Linux环境登陆源码
💻 C
字号:
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <netinet/in.h>
#include <fcntl.h>
#include "myhead.h"

#define LISTEN_PORT 2099
#define LISTEN_QUEUE 10
#define DO_PROCESS "/mysrc/network/loginserver/logincheck"
int main(void)
{
   int sockfd;
   char ipbuf[]="192.168.8.11";
   if(daemon_init()<0)
      exit(-1);
   if((sockfd=socket_init(ipbuf, LISTEN_PORT)) < 0)
   {write(STDERR_FILENO, "socket init error!", 19);   exit(-1);}
   if(socket_listen(sockfd, LISTEN_QUEUE) < 0)
      exit(-1);
   while(1) 
   {
      int acceptfd;
      pid_t pid;
      struct sockaddr_in cliename;
      socklen_t len;
      len = sizeof(cliename);
      acceptfd = accept(sockfd, (struct sockaddr *)&cliename, &len);
      if((pid=fork()) < 0)
         exit(-1);
      else if(pid != 0)
      {
         int status;
         close(acceptfd);
         waitpid(pid, &status, WUNTRACED);
      }
      else
      {
	pid_t pid;
	if((pid=fork()) == 0)
	{
         close(sockfd);
	 execl(DO_PROCESS, "");
	}
	 else
	     exit(0);
      }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -