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

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

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

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

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

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

《网络协议及编程》实验指导书实验三console界面tcp编程实验目的:编程实现console界面tcp的c/s编程。实验要求:使用vc++6.0实现,每人独立完成。实验说明:客户端和服务器端的编程步骤如下:实验步骤:新建工程。工程类型选“win32consoleapplication”,输入工程名称,选取工程存储位置,“下一步”,“一个空工程”,完成。选取“FileView”,点“SourceFiles”,按鼠标右键,选取“添加文件到目录”,输入文件名,点“确定”。开始编程。先编服务器程序。#include<Winsock2.h>#include<stdio.h>intvisits=0;voidmain(){WORDwVersionRequested;//版本号WSADATAwsaData;//数据interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;}SOCKETsockSrv=socket(AF_INET,SOCK_STREAM,0);//建立套接字SOCKADDR_INaddrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//绑定端口listen(sockSrv,5);//转换socket套接子为侦听套接子SOCKADDR_INaddrClient;intlen=sizeof(SOCKADDR);while(1)//无限循环{SOCKETsockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);visits++;charsendBuf[100];sprintf(sendBuf,"thisserverhasbeencontacted%dtime\n",visits);send(sockConn,sendBuf,strlen(sendBuf)+1,0);printf("ClientAddressis:%s\n",inet_ntoa(addrClient.sin_addr));closesocket(sockConn);}WSACleanup();}编译。在“工程“,”设置”,“链接”里,把ws2_32.lib加入。编译执行。再编客户程序。#include<Winsock2.h>#include<stdio.h>voidmain(){WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);//启动winsockDllif(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;}SOCKETsockClient=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_INaddrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");addrSrv.sin_port=htons(6000);addrSrv.sin_family=AF_INET;connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));charrecvBuf[1000];intn;n=recv(sockClient,recvBuf,1000,0);printf("%s",recvBuf);closesocket(sockClient);WSACleanup();}