SOCKET编程(TCP).doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:7 大小:21KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

SOCKET编程(TCP).doc

SOCKET编程(TCP).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Socket编程(TCP)客户端:/*TCP/IP应用编程接口(API)*//**客户端的工作流程:首先调用socket函数创建一个Socket,然后调用bind函数*将其与本机地址以及一个本地端口号绑定,请求连接服务器,通过新的socket*向客户端发送字符串"hi,Iamclient!"。最后关闭该socket。*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>intmain(){intcli_sockfd;/*客户端SOCKET*/intaddrlen;charseraddr[14];structsockaddr_inser_addr,/*服务器的地址*/cli_addr;/*客户端的地址*/charmsg[MAX_MSG_SIZE];/*缓冲区*/GetServerAddr(seraddr);cli_sockfd=socket(AF_INET,SOCK_STREAM,0);/*创建连接的SOCKET*/if(ser_sockfd<0){/*创建失败*/fprintf(stderr,"sockerError:%s\n",strerror(errno));exit(1);}/*初始化客户端地址*/addrlen=sizeof(structsockaddr_in);bzero(&ser_addr,addrlen);cli_addr.sin_family=AF_INET;cli_addr.sin_addr.s_addr=htonl(INADDR_ANY);cli_addr.sin_port=0;if(bind(cli_sockfd,(structsockaddr*)&cli_addr,addrlen)<0){/*棒定失败*/fprintf(stderr,"BindError:%s\n",strerror(errno));exit(1);}/*初始化服务器地址*/addrlen=sizeof(structsockaddr_in);bzero(&ser_addr,addrlen);ser_addr.sin_family=AF_INET;ser_addr.sin_addr.s_addr=inet_addr(seraddr);ser_addr.sin_port=htons(SERVER_PORT);if(connect(cli_sockfd,(structsockaddr*)&ser_addr,&addrlen)!=0)/*请求连接*/{/*连接失败*/fprintf(stderr,"ConnectError:%s\n",strerror(errno));close(cli_sockfd);exit(1);}strcpy(msg,"hi,Iamclient!");send(sockfd,msg,sizeof(msg),0);/*发送数据*/recv(sockfd,msg,MAX_MSG_SIZE,0);/*接受数据*/printf("%s\n",msg);/*在屏幕上打印出来*/close(cli_sockfd);return0;}服务器:/*TCP/IP应用编程接口(API)*//**服务器的工作流程:首先调用socket函数创建一个Socket,然后调用bind函数将其与本机地址以及*一个本地端口号绑定,然后调用listen在相应的socket上*,当accpet接收到一个连接服务请求时,*将生成一个新的socket。服务器显示该客户机的IP地址,并通过新的socket向客户端发送字符串*"hi,IamSERver!"。最后关闭该socket。*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>intmain(){intsock_fd,client_fd;/*sock_fd:*socket;client_fd:数据传输socket*/structsockaddr_inser_addr;/*本机地址信息*/structsockaddr_incli_addr;/*客户端地址信息*/charmsg[MAX_MSG_SIZE];/