zoukankan      html  css  js  c++  java
  • linux网络编程tcp

    之前学习的时候笔记没有保存好,这次重新编写一个案例。

    客户端实现程序代码:

    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    
    
    #define DEF_TCP_SRV_PORT 19868
    
    int main()
    {
    
        struct sockaddr_in addr;
        struct sockaddr_in srv_addr;
        int net_sock;
        int new_fd;
    
        int res;
        int len;
    
        char buff[128];
    
        // 1. socket 初始化
        // 1.1 创建socket
        net_sock = socket(AF_INET,SOCK_STREAM,0);
        if( -1 == net_sock )
        {
         printf("create socket error!
    ");
         return -1;
        }
        // 1.2 初始化地址
        bzero( &addr, sizeof(struct sockaddr_in));
    
        addr.sin_addr.s_addr = htonl(INADDR_ANY);
        addr.sin_family = AF_INET;
        addr.sin_port = htons(DEF_TCP_SRV_PORT);
    
        // 1.3 bind地址
        bind( net_sock, (struct sockaddr *)&addr, sizeof(struct sockaddr));
    
        //监听
        listen( net_sock, 5 );
    
        len = sizeof(struct sockaddr);
        new_fd = accept( net_sock, (struct sockaddr *)(&srv_addr),&len );
    
        printf("server ip:%s
    ",inet_ntoa(srv_addr.sin_addr));
    
        res = recv(new_fd, buff,125,0);
        buff[res] ='';
    
        printf("get : %s
    ",buff);
    
        close(net_sock);
    
        return 0;
    };

    服务端程序代码:

    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    
    
    #define DEF_TCP_SRV_PORT 19868
    
    int main()
    {
        struct sockaddr_in srv_addr;
        int sock;
        int res;
        char buff[128];
    
        //创建套接字
        sock = socket(AF_INET,SOCK_STREAM,0);
    
        if( -1 == sock )
        {
            printf("create sock failed
    ");
            return -1;
        }
    
        //设置要绑定的地址
        bzero( &srv_addr, sizeof(struct sockaddr_in));
    
        srv_addr.sin_addr.s_addr = inet_addr("192.168.1.21");
        srv_addr.sin_family = AF_INET;
        srv_addr.sin_port = htons(DEF_TCP_SRV_PORT);
    
        //连接
        res = connect(sock,(struct sockaddr *)(&srv_addr),sizeof(struct sockaddr));
    
        if( -1==res)
        {
            printf("connect failed
    ");
            return -1;
        }
    
        printf("please input data:
    ");
        fgets(buff,128,stdin);
        //发送数据
        send( sock, buff, strlen(buff),0);
    
        close(sock);
    
    }
  • 相关阅读:
    Android之帧动画2
    CSS之图片关闭
    JAVA之While语句、Do和For语句
    oracle 无效字符
    java 时间制
    mybatis jdbcType date没有时分秒
    log4j说明
    spy 日志说明
    linux更新系统时间
    linux常用命令2
  • 原文地址:https://www.cnblogs.com/ynxf/p/6146540.html
Copyright © 2011-2022 走看看