socket

来源:互联网 发布:知乎for mac 编辑:程序博客网 时间:2024/06/10 18:39

client

#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>int main(){        int sockfd;        int len;        struct sockaddr_in address;        int result;        char ch = 'A';        sockfd = socket(AF_INET,SOCK_STREAM,0); //流 基于TCP/IP 数据报 UDP/IP        address.sin_family = AF_INET;        address.sin_addr.s_addr = inet_addr("127.0.0.1");        address.sin_port = htons(8888); //主机字节序 =》 网络字节序        len = sizeof(address);        result = connect(sockfd,(struct sockaddr *)&address,len);        if(result == -1){                perror("oops:client1");                exit(1);        }        write(sockfd,&ch,1);        read(sockfd,&ch,1);        printf("char from server = %c\n",ch);        close(sockfd);        exit(0);}

server

#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>int main(){        int server_sockfd,client_sockfd;        int server_len,client_len;        struct sockaddr_in server_address,client_address;        int result;        char ch;        server_sockfd = socket(AF_INET,SOCK_STREAM,0);        server_address.sin_family = AF_INET;        server_address.sin_addr.s_addr = INADDR_ANY;        server_address.sin_port = htons(8888);        server_len = sizeof(server_address);        bind(server_sockfd,(struct sockaddr *)&server_address,server_len);        listen(server_sockfd,5);        while(1){                char ch;                printf("server waiting\n");                client_len = sizeof(client_address);                client_sockfd = accept(server_sockfd,(struct sockaddr *)&client_address,&client_len);                read(client_sockfd,&ch,1);                ch++;                write(client_sockfd,&ch,1);                close(client_sockfd);        }}
0 0