欢迎来到天天文库
浏览记录
ID:20455304
大小:191.50 KB
页数:6页
时间:2018-10-13
《tcpip实验报告实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、集美大学计算机工程学院实验报告课程名称:Windows网络与通信程序设计指导教师:余元辉班级姓名:实验成绩:实验项目名称:基于TCP的服务器客户端学号:上机实践日期:2015-04-24通信程序设计实验项目编号:07组号:五上机实践时间:2学时一、实验目的了解基于Select模型通信程序的编写,编译和执行二、实验内容与设计思想编写Win32程序模拟实现基于Select模型的两台计算机之间的通信,要求编程实现服务器端与客户端之间双向数据传递。客户端向服务器端发送“计算从1到100的奇数和”,服务器回应客户端给出从1至U100的奇数和结果。三、实验使用环境操作系统:Mi
2、crosoftWindowsXPSP2编程环境:VisualC++6.0四、实验步骤和调试过程木次实验中服务器选择的IP地址为:192.168.221.130,客户端的1P地址为192.168.221.130Server#includenInitSock.hn#include#include#include3、4、){//创建套接字SOCKETsListen=socket(AF_INET,SOCK一STREAM,IPPROTO.5、TCP);if(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(nbinderror!");}::listen(sListen,5);intitotal6、=0;intii;for(ii=l;ii<=l00;ii++){if(ii%2==l){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],&fdRead7、)){if(fdSocket.fd_an*ay[i]==sListen){if(fdSocket.fd_count8、");continue;else{//接收数据charszText[256];intnRecv=::recv(fdSocket.fd_array[i],szText,strlen(szText),0);if(nRecv>0){szText[nRecvl=* ';printf("接收到数据:%s",szText);//发送数据charstr[10];charstrl[20]="l到100的奇数和为:";itoa(itotal,str,10);char*sendData=strcat(strl,str);::send(fdSocket.fd一array[i],se9、ndData,strlen(sendData),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*argvf]){SOCKETsclient=socket(AF_INET,SOCK—STREAM,IPPROTO
3、
4、){//创建套接字SOCKETsListen=socket(AF_INET,SOCK一STREAM,IPPROTO.
5、TCP);if(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(nbinderror!");}::listen(sListen,5);intitotal
6、=0;intii;for(ii=l;ii<=l00;ii++){if(ii%2==l){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
7、)){if(fdSocket.fd_an*ay[i]==sListen){if(fdSocket.fd_count8、");continue;else{//接收数据charszText[256];intnRecv=::recv(fdSocket.fd_array[i],szText,strlen(szText),0);if(nRecv>0){szText[nRecvl=* ';printf("接收到数据:%s",szText);//发送数据charstr[10];charstrl[20]="l到100的奇数和为:";itoa(itotal,str,10);char*sendData=strcat(strl,str);::send(fdSocket.fd一array[i],se9、ndData,strlen(sendData),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*argvf]){SOCKETsclient=socket(AF_INET,SOCK—STREAM,IPPROTO
8、");continue;else{//接收数据charszText[256];intnRecv=::recv(fdSocket.fd_array[i],szText,strlen(szText),0);if(nRecv>0){szText[nRecvl=* ';printf("接收到数据:%s",szText);//发送数据charstr[10];charstrl[20]="l到100的奇数和为:";itoa(itotal,str,10);char*sendData=strcat(strl,str);::send(fdSocket.fd一array[i],se
9、ndData,strlen(sendData),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*argvf]){SOCKETsclient=socket(AF_INET,SOCK—STREAM,IPPROTO
此文档下载收益归作者所有