echo_server.c
来自「基于GTK的服务器server程序」· C语言 代码 · 共 74 行
C
74 行
#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 + =
减小字号Ctrl + -
显示快捷键?