zoukankan      html  css  js  c++  java
  • Socket

    Socket


    一、Server

     int server_fd,client_fd;

    // 地址蔟、socket类型、通信协议
    server_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (server_fd < 0) {
    printf("socket error ");
    return -1;
    }

    struct sockaddr_in addr,clientAddr;
    bzero(&addr,sizeof(addr));

    addr.sin_family = AF_INET;
    addr.sin_port = htons(7787);
    addr.sin_addr.s_addr = INADDR_ANY; // inet_addr("127.0.0.0")

    // 地址绑定
    bind(server_fd, (struct sockaddr_in *)&addr, sizeof(struct sockaddr_in));

    // 100 最大连接数,监听连接请求--监听队列长度为 100
    listen(server_fd, 100);

    // 阻塞,直到有客户端连接
    int s_size = sizeof(struct sockaddr_in);
    client_fd = accept(server_fd, (struct sockaddr_in *)&clientAddr, &s_size);
    if (client_fd >= 0) {
    printf("connect client:%s ",inet_ntoa(clientAddr.sin_addr));
    }

    二、Client

     int fd;

    // 网络层协议: 决定抵制类型(ipv4、ipv6)AF_INET AF_INET6
    // socket类型:SOCK_STREAM SOCK_DGRAM
    // 运输层协议: IPPROTO_TCP IPPROTO_UDP
    fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (fd <= 0) {
    perror("open socket error ");
    return -1;
    }

    struct sockaddr_in addr;
    bzero(&addr,sizeof(addr));

    addr.sin_family = AF_INET;
    addr.sin_port = htons(8088);
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");

    // connect 成功返回0
    if (connect(fd, (struct sockaddr_in *)&addr, sizeof(addr)) < 0) {
    perror("connect error ");
    return -1;
    }
     
  • 相关阅读:
    Linux用户行为日志审计
    日志分析-Web
    secedit.exe 本地审核
    StreamCQL
    一个关于缓存很好的文章~
    Java免费开源数据库、Java嵌入式数据库、Java内存数据库
    MySQL db优化
    威胁情报
    《javascript设计模式》读书笔记二(封装和隐藏信息)
    Mysql触发器
  • 原文地址:https://www.cnblogs.com/buakaw/p/5725686.html
Copyright © 2011-2022 走看看