客户端:

                   //客户端连接上服务器之后就会收到服务器的回送信息



#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\n")==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!\n");
42 
43     char c[BUFSIZ];
44     strcpy(c,"I(server) has successfully accepted the client's information!\n");
45     printf("send succeed\n");
46     send(cfd,c,sizeof(c),0);
47     //printf("send succeed\n");
48     
49     close(cfd);
50     close(lfd);
51     return 0;
52 }

 

posted on 2020-04-03 15:49  不留念  阅读(235)  评论(0)    收藏  举报