zoukankan      html  css  js  c++  java
  • 简单的tcp服务端/客户端代码例二

    客户端:

                       //客户端连接上服务器之后就会收到服务器的回送信息
    
    
    
    #include<stdio.h>
    #include<sys/socket.h>
    #include<stdlib.h>
    #include<arpa/inet.h>
    #include<unistd.h>
    #include<string.h>
    
    
    #define SERV_PORT 8888
    
    int main()
    {
        int cfd;
        cfd=socket(AF_INET, SOCK_STREAM, 0);
    
        struct sockaddr_in serv_addr;
        serv_addr.sin_family = AF_INET;
        serv_addr.sin_port = htons(SERV_PORT);
        serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
        if (connect(cfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
        {
            perror("connect");
            exit(1);
        }
        char sendbuf[BUFSIZ];
             char recvbuf[BUFSIZ];
             while (fgets(sendbuf, sizeof(sendbuf), stdin) != NULL){
                send(cfd, sendbuf, strlen(sendbuf),0);
                 if(strcmp(sendbuf,"exit
    ")==0)
                         break;
                 recv(cfd, recvbuf, sizeof(recvbuf),0);
                 fputs(recvbuf, stdout);
    
                 memset(sendbuf, 0, sizeof(sendbuf));
                 memset(recvbuf, 0, sizeof(recvbuf));
             }
    
             close(cfd);
        return 0;
    }

    服务端:

     1           //客户端连接上服务器之后就会收到服务器的回送信息
     2 
     3 #include<stdio.h>
     4 #include<sys/socket.h>
     5 #include<unistd.h>
     6 #include<stdlib.h>
     7 #include<arpa/inet.h>
     8 #include<ctype.h>
     9 #include<string.h>
    10 
    11 
    12 #define SERV_PORT 8888
    13 
    14 int main()
    15 {
    16     int lfd = socket(AF_INET, SOCK_STREAM, 0);
    17 
    18     struct sockaddr_in serv_addr, clie_addr;
    19     serv_addr.sin_family = AF_INET;
    20     serv_addr.sin_port = htons(SERV_PORT);
    21     serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    22     if(bind(lfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == -1);
    23     {
    24         perror("bind");
    25         exit(1);
    26     }
    27 
    28     if(listen(lfd, 128) == -1)
    29     {
    30         perror("listen");
    31         exit(1);
    32     }
    33 
    34     socklen_t clie_addr_len=sizeof(clie_addr);
    35     int cfd=accept(lfd, (struct sockaddr *) &clie_addr,&clie_addr_len);
    36     if(cfd<0)
    37     {
    38         perror("accept");
    39         exit(1);
    40     }
    41     else printf("the server has opend!
    ");
    42 
    43     char c[BUFSIZ];
    44     strcpy(c,"I(server) has successfully accepted the client's information!
    ");
    45     printf("send succeed
    ");
    46     send(cfd,c,sizeof(c),0);
    47     //printf("send succeed
    ");
    48     
    49     close(cfd);
    50     close(lfd);
    51     return 0;
    52 }
  • 相关阅读:
    IsEmpty函数和IsNull函数之间的区别
    JavaScript的self和this使用小结
    PHP中读写文件实现代码
    ExtJs的数据代理proxy
    php递归列出所有文件和目录的代码
    解析Extjs与php数据交互(增删查改)
    MySql 批量创建、导入实例
    MySQL 进入 导入
    小知识:批量导入数据
    js 扩展实例
  • 原文地址:https://www.cnblogs.com/yxbl/p/12626935.html
Copyright © 2011-2022 走看看