📄 echo_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 + -