预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

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

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

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];/