TCP通讯程序设计

来源:互联网 发布:南沙人工智能产业园 编辑:程序博客网 时间:2024/05/29 04:05

TCP编程模型:
这里写图片描述

服务器端程序

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>/*定义了struct sockaddr_in*/void main(){    int sockfd;    /*创建socket*/    sockfd=socket(AF_INET,SOCK_STREAM,0);    if(sockfd==-1)    {        printf("create socket false");        exit(1);        }    /*绑定地址*/    struct sockaddr_in server_addr;    server_addr.sin_family=AF_INET;    server_addr.sin_port=htons(5000);    server_addr.sin_addr.s_addr=htonl(INADDR_ANY);    if(bind(sockfd,(const struct sockaddr *)(&server_addr),sizeof(server_addr))==-1)    {        printf("bind false");        exit(1);        }    /*监听端口*/    listen(sockfd,3);    /*等待连接*/    int newfd;    struct sockaddr_in client_addr;    int addrlen=sizeof(client_addr);    newfd=accept(sockfd,(struct sockaddr *)(&client_addr),&addrlen);    /*收发数据*/    char buf[128];    recv(newfd,buf,128,0);    printf("the message is from :%s\n",inet_ntoa(client_addr.sin_addr));    printf("the message received is %s\n",buf);    /*结束连接*/    close(newfd);    close(sockfd);}

客户端程序

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>/*定义了struct sockaddr_in*/void main(){    /*创建socket*/    int sockfd=socket(AF_INET,SOCK_STREAM,0);    if(sockfd==-1)    {        printf("create socket false");        exit(1);        }    /*连接服务器*/    struct sockaddr_in server_addr;    server_addr.sin_family=AF_INET;    server_addr.sin_port=htons(5000);    server_addr.sin_addr.s_addr=inet_addr("192.168.137.246");    if(connect(sockfd,(const struct sockaddr *)(&server_addr),sizeof(server_addr))==-1)    {        printf("connect false");        exit(1);        }    /*收发数据*/    printf("please enter your message\n");    char buf[128];    scanf("%s",buf);    send(sockfd,buf,128,0);    /*结束连接*/    close(sockfd);}
0 0
原创粉丝点击