zoukankan      html  css  js  c++  java
  • [国嵌攻略][091][TCP网络程序设计]

    server.c

    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <strings.h>
    #include <stdio.h>
    
    #define SERVER_PORT 3333
    
    void main(){
         //创建标识
        int serverfd;
        
        serverfd = socket(AF_INET, SOCK_STREAM, 0);   //建立TCP连接
        
        //绑定地址
        struct sockaddr_in serverAddr;
        
        serverAddr.sin_family = AF_INET;                   //设置协议
        serverAddr.sin_port = htons(SERVER_PORT);          //设置端口
        serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);    //设置地址
        bzero(serverAddr.sin_zero, 8);                     //设置为零
        
        bind(serverfd, (struct sockaddr *)&serverAddr, sizeof(struct sockaddr));
        
        //监听端口
        listen(serverfd, 1);
        
        //等待连接
        socklen_t clientAddrLen;
        struct sockaddr_in clientAddr;
        int clientfd;
    
        clientAddrLen = sizeof(struct sockaddr);
        clientfd = accept(serverfd, (struct sockaddr *)&clientAddr, &clientAddrLen);
        
        //接收数据
        char buffer[2048];
        
        recv(clientfd, buffer, sizeof(buffer), 0);
        
        //显示数据
        char *clientIPAddr;
        
        clientIPAddr = (char *)inet_ntoa(clientAddr.sin_addr.s_addr);
        printf("server recvice from %s:
    %s", clientIPAddr, buffer);
    
        //关闭连接
        close(clientfd);
        close(serverfd);
    }

    client.c

    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <strings.h>
    #include <stdio.h>
    
    #define SERVER_PORT 3333
    
    int main(int argc, char **argv){
        //参数检查
        if(argc != 2){
            printf("Usage:
    	./client <ip address>
    ");
            return -1;
        }
        
        //创建标识
        int clientfd;
        
        clientfd = socket(AF_INET, SOCK_STREAM, 0);   //建立TCP连接
        
        //建立连接
        struct sockaddr_in serverAddr;
        
        serverAddr.sin_family = AF_INET;                   //设置协议
        serverAddr.sin_port = htons(SERVER_PORT);          //设置端口
        serverAddr.sin_addr.s_addr = inet_addr(argv[1]);   //设置地址
        bzero(serverAddr.sin_zero, 8);                     //设置为零
        
        connect(clientfd, (struct sockaddr *)&serverAddr, sizeof(struct sockaddr));
    
        //输入数据
        char buffer[2048];
        
        printf("client send to %s:
    ", argv[1]);
        fgets(buffer, sizeof(buffer), stdin);
        
        //发送数据
        send(clientfd, buffer, sizeof(buffer), 0);
        
        //关闭连接
        close(clientfd);
        
        return 0;
    }
  • 相关阅读:
    关于JS中涉及的常用类型转换及运算符表达式
    关于JS脚本语言的基础语法
    钱、车、房、能力
    三数中找最大值
    C#语句
    进制转换
    自动拆装箱、可变参数
    使用dom4j解析xml
    jaxp的dom方式操作(查找、添加、修改、删除、遍历节点)
    xml-dtd
  • 原文地址:https://www.cnblogs.com/d442130165/p/5232346.html
Copyright © 2011-2022 走看看