欢迎来到天天文库
浏览记录
ID:39468693
大小:57.00 KB
页数:6页
时间:2019-07-04
《TCP IP实验报告实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、集美大学计算机工程学院实验报告课程名称:Windows网络与通信程序设计班级实验成绩:指导教师:余元辉姓名:实验项目名称:基于TCP的服务器客户端通信程序设计学号:上机实践日期:2015-04-24实验项目编号:07组号:五上机实践时间:2学时一、实验目的了解基于Select模型通信程序的编写,编译和执行二、实验内容与设计思想编写Win32程序模拟实现基于Select模型的两台计算机之间的通信,要求编程实现服务器端与客户端之间双向数据传递。客户端向服务器端发送“计算从1到100的奇数和”,服务器回应客户端给出从1到100的奇数和结果。三、实验使用环境操作系统:Micros
2、oftWindowsXPSP2编程环境:VisualC++6.0四、实验步骤和调试过程本次实验中服务器选择的IP地址为:192.168.221.130,客户端的IP地址为192.168.221.130Server#include"InitSock.h"#include#include#includeCInitSockinitSock;intmain(intargc,char*argv[]){//创建套接字SOCKETsListen=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if
3、(sListen==INVALID_SOCKET){printf("socketerror!");return0;}//绑定IP和端口sockaddr_insin;sin.sin_family=AF_INET;sin.sin_port=htons(5555);sin.sin_addr.S_un.S_addr=INADDR_ANY;if(bind(sListen,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR){printf("binderror!");}::listen(sListen,5);intitotal=0;intii;fo
4、r(ii=1;ii<=100;ii++){if(ii%2==1){itotal+=ii;}}fd_setfdSocket;FD_ZERO(&fdSocket);FD_SET(sListen,&fdSocket);while(true){fd_setfdRead=fdSocket;intnRet=::select(0,&fdRead,NULL,NULL,NULL);if(nRet>0){for(inti=0;i<(int)fdSocket.fd_count;i++){if(FD_ISSET(fdSocket.fd_array[i],&fdRead)){if(fdSocket
5、.fd_array[i]==sListen){if(fdSocket.fd_count6、e{//接收数据charszText[256];intnRecv=::recv(fdSocket.fd_array[i],szText,strlen(szText),0);if(nRecv>0){szText[nRecv]=' ';printf("接收到数据:%s",szText);//发送数据charstr[10];charstr1[20]="1到100的奇数和为:";itoa(itotal,str,10);char*sendData=strcat(str1,str);::send(fdSocket.fd_array[i],sendData,strlen(send7、Data),0);}else{::closesocket(fdSocket.fd_array[i]);FD_CLR(fdSocket.fd_array[i],&fdSocket);}}}}}else{printf("选择失败!");break;}}return0;}Client#include"InitSock.h"#includeCInitSockinitSock;intmain(intargc,char*argv[]){SOCKETsclient=socket(AF_INET,SOCK_STREAM,
6、e{//接收数据charszText[256];intnRecv=::recv(fdSocket.fd_array[i],szText,strlen(szText),0);if(nRecv>0){szText[nRecv]=' ';printf("接收到数据:%s",szText);//发送数据charstr[10];charstr1[20]="1到100的奇数和为:";itoa(itotal,str,10);char*sendData=strcat(str1,str);::send(fdSocket.fd_array[i],sendData,strlen(send
7、Data),0);}else{::closesocket(fdSocket.fd_array[i]);FD_CLR(fdSocket.fd_array[i],&fdSocket);}}}}}else{printf("选择失败!");break;}}return0;}Client#include"InitSock.h"#includeCInitSockinitSock;intmain(intargc,char*argv[]){SOCKETsclient=socket(AF_INET,SOCK_STREAM,
此文档下载收益归作者所有