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

📄 echo_server.c

📁 基于GTK的服务器server程序
💻 C
字号:
#include <glib.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include <netdb.h>
#include <netinet/in.h>

#define OURPORT 8088
void do_service (gind sd)
{
  gchar buf[1024];
  while (read(sd,buf,1024)!=-1)
  {
    write(sd,buf,1024);
  }
}

int main(int argc,char*argv[])
{
   gint sd,newsd;
   struct sockaddr_in *sin;
   gint slen;
   gchar buf [1024];
   sd = socket(AF_INET,SOCK_STREAM,0);
   
   if (sd==-1)
   {
     g_print("creat sock error!\n");
     return -1;
   }
   
   sin = g_new(struct sockaddr_in,1);
   sin->sin_family=AF_INET;
   sin->sin_port = OUTPORT;
   slen = sizeof(struct sockaddr_in);
   
   if(bind(sd,sin,slen)<0)
   {
     g_print("bind error!\n");
     return -1;
   }
   
   if(listen(sd,8)<0)
   {
    g_print("listen error!\n");
    return -1;
   }
   
   for(;;)
   {
     newsd = accept(sd,sin,&slen);
     if(newsd==-1)
     {
       g_print("accept error!\n");
       break;
     } 
     switch(fork())
     {
       case 0:
           do_service(newsd);
           break;
       case 1:
           g_print("fork error!\n");
           break;
     }
   }
   
   close(sd);
   g_freee(sin);
}

⌨️ 快捷键说明

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