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

📄 server.c

📁 linux下学习socket的编程,使用tcp协议
💻 C
字号:
# include <stdio.h>
# include <sys/types.h>
# include <sys/socket.h>
# include <netinet/in.h>
# include <netdb.h>

# define SERVER_PORT 5432
# define MAX_PENDING 5
# define MAX_LINE 256

//struct in_addr
//{
 //  u_long  s_addr;

//}

//struct sockaddr_in
  // {
    //    short sin_family;      /*  AF_INET   */
      //  u_short  sin_port;
                  /*   16特端口号  网络字节顺序*/
      //  struct in_addr, sin_addr;
              /* 32比特IP地址,网络字节顺序*/
       // char sin_zero[8];            /* 未用  */
//  }

int main()
{
 struct sockaddr_in sin;
 char buf[MAX_LINE];
 int len;
 int s,new_s;

/* 建立地址数据结构 */
bzero((char *)&sin,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_port=htons(SERVER_PORT);
/* 建立被动连接 */
if((s=socket(PF_INET,SOCK_STREAM,0))<0) {
perror("simplex-talk:socket");
exit(1);
}
if((bind(s,(struct sockaddr *)&sin,sizeof(sin)))<0) {
perror("simplex-talk:bind");
exit(1);
}
listen(s,MAX_PENDING);
/*等待连接,然后接收并输出文本 */
while(1) {
  if((new_s=accept(s,(struct sockaddr *)&sin,&len))<0)
{
    perror("simplex-talk:accept");
    exit(1);
}
while(len=recv(new_s,buf,sizeof(buf),0))
fputs(buf,stdout);
close(new_s);
}
}

⌨️ 快捷键说明

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