zoukankan      html  css  js  c++  java
  • linux的最简socket编程

    一.背景

    好久没有进行linux下的socket编程了,复习一下

    二.服务端完整代码

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    #include <errno.h>

    #include <sys/types.h>

    #include <sys/socket.h>

    #include <sys/wait.h>

    #include <netinet/in.h>

    #include <unistd.h>

    #define PORT (9000)

    #define MAX_BACKLOG (5)

    #define SEND_CONTENT "hello,jello"

    void main(void){

      int listenfd,new_fd;

      struct sockaddr_in myaddr;

      

      listenfd = socket(AF_INET,SOCK_STREAM,0);

      memset(&myaddr,0,sizeof(myaddr));

      myaddr.sin_family = AF_INET;

      myaddr.sin_port = htons(PORT);

      myaddr.sin_addr.s_addr = htonl(INADDR_ANY);

      

      bind(listenfd,(struct sockaddr*)&myaddr,sizeof(struct sockaddr));

      listen(listenfd,MAX_BACKLOG);

      while(1){  

        new_fd = accept(listenf,(struct sockaddr*)NULL,NULL);

        send(new_fd,SEND_CONTENT,strlen(SEND_CONTENT),0)

        usleep(1);

        close(new_fd);  

      }

      close(listenfd);

    }

    三.客户端完整代码

    #include <stdlib.h>

    #include <stdio.h>

    #include <string.h>

    #include <errno.h>

    #include <sys/types.h>

    #include <sys/socket.h>

    #include <sys/wait.h>

    #include <netinet/in.h>

    #include <arpa/inet.h>

    #include <unistd.h>

    #define PORT (9000)

    #define SERVER_IP "127.0.0.1"

    #define BUFF_SIZE (100)

    void main(void){

      int fd,num;

      struct sockaddr_in server_addr;

      char buff[BUFF_SIZE] = {0};

      fd = socket(AF_INET,SOCK_STREAM,0);

      memset(&server_addr,0,sizeof(server_addr));

      server_addr.sin_family = AF_INET;

      server_addr.sin_port = htons(PORT);

      inet_pton(AF_INET,SERVER_IP,&server_addr.sin_addr);

      connect(fd,(struct sockaddr*)&server_addr,sizeof(struct sockaddr));

      num = recv(fd,buff,sizeof(buff),0);

      buff[num] = '';

      printf("buff = %s,num = %d ",buff,n);

      close(fd);

    }

    四.编译及运行

    gcc server.c -o server

    gcc client.c -o client

    ./server &

    ./client

  • 相关阅读:
    Docker之设置加速器
    Nginx之美多商城前台部署
    Nginx之负载均衡
    Nginx之反向代理
    美多商城后台MIS系统部署之Nginx配置
    Nginx之server和location配置使用
    题解 P4721 【【模板】分治 FFT】
    题解 P3338 【[ZJOI2014]力】
    题解 CHSEQ22 【Chef and Favourite Sequence】
    题解 CF813F 【Bipartite Checking】
  • 原文地址:https://www.cnblogs.com/dakewei/p/9208427.html
Copyright © 2011-2022 走看看