zoukankan      html  css  js  c++  java
  • LINUX

    服务端【编译:gcc server.c -o server】

    #include <stdio.h>
    #include <sys/socket.h>
    #include <sys/types.h>
    #include <string.h>
    #include <netinet/in.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <unistd.h>
    #include <arpa/inet.h>
    
    #define MAXLINE 1024
    int main(int argc,char **argv)
    {
        int listenfd,connfd;
        struct sockaddr_in sockaddr;
        char buff[MAXLINE];
        int n;
    
        memset(&sockaddr,0,sizeof(sockaddr));
    
        sockaddr.sin_family = AF_INET;
        sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
        sockaddr.sin_port = htons(10004);
    
        listenfd = socket(AF_INET,SOCK_STREAM,0);
    
        bind(listenfd,(struct sockaddr *) &sockaddr,sizeof(sockaddr));
    
        listen(listenfd,1024);
    
    
        printf("Please wait for the client information
    ");
    
        for(;;)
        {
            if((connfd = accept(listenfd,(struct sockaddr*)NULL,NULL))==-1)
            {
                printf("accpet socket error: %s errno :%d
    ",strerror(errno),errno);
                continue;
            }
    
            n = recv(connfd,buff,MAXLINE,0);
            buff[n] = '';
            printf("recv msg from client:%s",buff);
            close(connfd);
        }
        close(listenfd);
    }

    客户端【编译:gcc client.c -o client  【备注:需要修改服务端地址,代码中为1.2.3.4】】

    #include <stdio.h>
    #include <sys/socket.h>
    #include <sys/types.h>
    #include <stdlib.h>
    #include <netinet/in.h>
    #include <errno.h>
    #include <string.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    #define MAXLINE 1024
    
    void sendMsgToServer(char *xxx){
        char *servInetAddr = "1.2.3.4";
        int socketfd;
        struct sockaddr_in sockaddr;
        char recvline[MAXLINE],sendline[MAXLINE];
        int n;
        memcpy(sendline,xxx,1000);
        socketfd = socket(AF_INET,SOCK_STREAM,0);
        memset(&sockaddr,0,sizeof(sockaddr));
        sockaddr.sin_family = AF_INET;
        sockaddr.sin_port = htons(10004);
        inet_pton(AF_INET,servInetAddr,&sockaddr.sin_addr);
        if((connect(socketfd,(struct sockaddr*)&sockaddr,sizeof(sockaddr))) < 0 )
        {
            printf("connect error %s errno: %d
    ",strerror(errno),errno);
            exit(0);
        }
        printf("send message to server
    ");
        if((send(socketfd,sendline,strlen(sendline),0)) < 0)
        {
            printf("send mes error: %s errno : %d",strerror(errno),errno);
            exit(0);
        }
        close(socketfd);
        printf("over
    ");
    }
    int main(int argc,char **argv)
    { 
        char abc[1000];
        while(fgets(abc,1024,stdin) != EOF){
            sendMsgToServer(abc);
        }
        return 0;
    }

    参考:

    https://www.cnblogs.com/yusenwu/p/4579167.html

  • 相关阅读:
    WP8.1通过StreamSocket连接C++服务器
    WP10通过StreamSocket连接C++服务器
    二维背包(两个限制条件)
    dp(多重背包)
    dp(完全背包)
    dfs(迷宫)
    bfs迷宫
    蚁人cp数
    二分(老死不相往来)
    前缀和(狼和野牛)
  • 原文地址:https://www.cnblogs.com/wangqiwen-jer/p/11477202.html
Copyright © 2011-2022 走看看