zoukankan      html  css  js  c++  java
  • linux tcp server demo

     #include <sys/types.h>
     #include <sys/socket.h>
     #include <string.h>
     #include <netinet/in.h>
     #include <stdio.h>
     #include <stdlib.h>
      
     #define MAXLINE 80
     #define SERV_PORT 6970
     
    void do_echo(int sockfd, struct sockaddr *pcliaddr, socklen_t clilen)
    {
       int n;
       socklen_t len;
       char mesg[MAXLINE];
    
      for(;;)
      {
        len = clilen;
        /* waiting for receive data */
         n = recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);
        /* sent data back to client */
        printf("receieve: %s
    ",mesg);
        fflush ( stdout ) ;
        sendto(sockfd, mesg, n, 0, pcliaddr, len);
    
       }
     }
     
     int main(void)
     {
     int sockfd;
     struct sockaddr_in servaddr, cliaddr; 
     sockfd = socket(AF_INET, SOCK_DGRAM, 0); /* create a socket */
     
     /* init servaddr */
     bzero(&servaddr, sizeof(servaddr));
     servaddr.sin_family = AF_INET;
     servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
     servaddr.sin_port = htons(SERV_PORT);
    
     /* bind address and port to socket */
     if(bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1)
    {
     perror("bind error");
     exit(1);
     }
     
     do_echo(sockfd, (struct sockaddr *)&cliaddr, sizeof(cliaddr));
     
     return 0;
     }
    

      

  • 相关阅读:
    python中filter(),map()和reduce()的用法及区别
    Python中的单例模式的几种实现方式的及优化
    python标准库和第三方库的区别
    django和flask的区别
    wtforms
    protobuf学习
    人物FSM
    策略模式
    虚函数调用机制
    虚析构函数
  • 原文地址:https://www.cnblogs.com/likwo/p/3752886.html
Copyright © 2011-2022 走看看