《网络通信程序设计(c++)》实验指导书.doc

上传人:文库蛋蛋多 文档编号:2385172 上传时间:2023-02-17 格式:DOC 页数:26 大小:147.50KB
返回 下载 相关 举报
《网络通信程序设计(c++)》实验指导书.doc_第1页
第1页 / 共26页
《网络通信程序设计(c++)》实验指导书.doc_第2页
第2页 / 共26页
《网络通信程序设计(c++)》实验指导书.doc_第3页
第3页 / 共26页
《网络通信程序设计(c++)》实验指导书.doc_第4页
第4页 / 共26页
《网络通信程序设计(c++)》实验指导书.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《《网络通信程序设计(c++)》实验指导书.doc》由会员分享,可在线阅读,更多相关《《网络通信程序设计(c++)》实验指导书.doc(26页珍藏版)》请在三一办公上搜索。

1、 网络通信程序设计(c+) 实 验 指 导 书编 写适用专业: 计算机科学与技术通信工程闽江学院 计算机科学 系2009年 7月前 言网络通信程序设计这门课程系统介绍了网络通信软件设计的原理和方法,详细讨论了在Windows环境下的各种网络编程接口和网络通信程序设计技术,深入分析了各种设计方法的原理以及异常处理方法,主要内容包括:基于Net BIOS的网络编程,基于TCP/IP协议的网络编程,进程通信与分布计算,多线程结构的网络编程技术,直接网络编程技术,网络数据包捕获与分析等。针对该课程学习的目的与要求,本指导书开设了九个实验项目。通过实验应达到下列要求: 1.掌握网络通信的模式及程序设计的

2、方法;2.掌握基于Net BIOS的网络编程;3.掌握基于TCP/IP协议的网络编程;4.掌握进程通信与多线程结构的网络编程技术;5.掌握网络通信综合实例的开发。本指导书给出实验源代码或学生自己编写源程序,由学生自己编译、调试并运行;通过实验程序运行的显示结果理解网络通信程序设计的主要原理;在实验报告中回答思考题。目 录 1、实验一 Windows应用程序设计42、实验二 NetBIOS网络程序设计8 3、实验三 基于NetBIOS简单数据报通信程序设计11 4、实验四 基于NetBIOS会话通信程序设计145、实验五 Winsock网络信息查询函数的应用16 6、实验六 Winsock会话通

3、信程序设计19 7、实验七 Winsock数据报通信程序设计20 8、实验八 Winsock多线程编程22 9、实验九 网络聊天室24实验一 Windows应用程序设计实验学时:2实验类型:验证实验要求:必做一、实验目的1、了解在VC中Windows SDK应用程序的开发2、熟悉Win32 Application和Win32 Console Application的程序结构二、实验内容1、编写简单应用程序,要求程序能实现对字符串的处理;2、参考实验例程,编写一个Win32 Application类型的Windows窗口程序。3、运行程序并对照实验源程序阅读理解实验输出结果的意义。三、实验原理、

4、方法和手段编写简单应用程序,实现对输入数据的判断及简单处理,为后续课程实现数据通信奠定基础。设计并运行Win32 Application窗口应用程序,实现创建window窗口,并处理窗口信息;程序设计的思想:注册窗口类、创建窗口、显示和更新窗口、创建消息循环、处理消息。四、实验组织运行要求根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握Win32 Application和Win32 Console Application的程序结构。 难点:实验程序的问题描述、实现算法、数据结构。五、实验条件具备Windows操作系统、带有VC+软件的PC机。六、实验步骤1

5、、Win32 Console程序开发 运行Microsoft Visual C+ 创建工程:选择菜单“File”“New”,在打开的对话框中,切换到“Projects”标签下,并选择“Win32 Console Application”作为工程类型,分别在Project name和Location文本框中输入工程的名字和位置(可自行定义),单击“OK”完成工程的创建。 编写代码实现:输入一串,比较字符串是否为“exit”,是则退出程序,否则输出串长度。循环输入第二个串,重复上述处理(请给出程序代码)。 形成目标程序单击菜单栏的“组建(B)”菜单下的“编译”命令,进行编译。在“输出”窗口的“组建

6、”标签页下查看是否存在编译错误,若有,则进行调试。 运行程序单击菜单栏的“组建(B)”菜单下的“执行”命令,生成.exe文件。必要时,可在过程中设置断点,以便核查相应指令的运行结果。2、Win32 Application窗口应用程序开发 程序结构:注册窗口类创建窗口显示和更新窗口创建消息循环处理消息 创建工程:同上,注意这里要选择“Win32 Application”作为工程类型 编写源程序:程序可参考实验例程 形成目标程序 运行程序3、记录并理解运行显示的信息4、回答思考题并撰写实验报告七、思考题1、 Windows SDK应用程序有哪两种工程类型?它们分别以什么函数作为自己的入口点的?开发

7、Windows的窗口程序应该选择哪种工程类型呢?采用何种方式来模拟时间片?简要说明实现方法。2、 在Windows程序中,WinMain函数主要完成哪些操作,对消息的处理由哪个函数完成?八、实验报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的

8、现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法。九、实验例程程序一:#include #include void main() char buff200; int len; int i; memset(buff,0,sizeof(buff);scanf(%s,&buff); for(;)len=strlen(buff);i=strcmp(buff,exit); if(i) printf(this string le

9、n:%dn,len);elsebreak;scanf(%s,&buff);程序二:#include #include long FAR PASCAL MainWndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) / TODO: Place code here. MSG msg;WNDCLASS wc;HWND ghWndMain;

10、if(!hPrevInstance)wc.style=CS_OWNDC;wc.lpfnWndProc=(WNDPROC)MainWndProc;wc.cbClsExtra=0;wc.cbWndExtra=0;wc.hInstance=hInstance;wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);wc.hCursor=LoadCursor(NULL,IDC_ARROW);wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wc.lpszMenuName=NULL;wc.lpszClassName=Main

11、WindowClass;if(!RegisterClass(&wc)return(false);ghWndMain = CreateWindow(MainWindowClass,SDK Programing Example,WS_OVERLAPPEDWINDOW,10,10,600,500,NULL,NULL,hInstance,NULL);if(ghWndMain=NULL) return false;ShowWindow(ghWndMain,SW_SHOW);UpdateWindow(ghWndMain);while(GetMessage(&msg,NULL,0,0)TranslateMe

12、ssage(&msg);DispatchMessage(&msg);return(msg.wParam);long FAR PASCAL MainWndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) switch(message) case WM_DESTROY: PostQuitMessage(0); break; case WM_PAINT: HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hWnd,&ps); TextOut(hDC,1,1,测试,strlen(测试); EndPaint(h

13、Wnd,&ps); break; default: return(DefWindowProc(hWnd,message,wParam,lParam); return(false);实验二 NetBIOS网络程序设计实验学时:2实验类型:验证实验要求:必做一、实验目的1、加深理解使用VC编写Win32 Console Application的程序。2、熟悉NetBIOS原理,编写网络应用程序。二、实验内容1、阅读实验程序程序代码见【实验例程】。2、 编写一个Win32 Console 程序,初始化NetBIOS。 改进初始化NetBIOS程序,读出系统所有的lana编号,并复位各网卡上的NetB

14、IOS。三、实验原理、方法和手段编写Win32 Console 程序,熟练掌握Win32 Console 的编程方法。设计NetBIOS应用程序,实现对lana编号的处理和复位网卡,通过程序的开发与运行来理解NetBIOS的原理。四、实验组织运行要求根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握NetBIOS的原理,进行简单应用程序设计。 难点:实验程序的问题描述、实现算法、数据结构。五、实验条件具备Windows操作系统、带有VC+软件的PC机。六、实验步骤1、Win32 Console程序开发,初始化NetBIOS 运行Microsoft Visua

15、l C+ 创建工程:选择菜单“File”“New”,在打开的对话框中,切换到“Projects”标签下,并选择“Win32 Console Application”作为工程类型,分别在Project name和Location文本框中输入工程的名字和位置(可自行定义),单击“OK”完成工程的创建。 创建c+ source file ,编写程序 程序可参考实验例程 形成目标程序单击菜单栏的“组建(B)”菜单下的“编译”命令,进行编译。在“输出”窗口的“组建”标签页下查看是否存在编译错误,若有,则进行调试。 运行程序单击菜单栏的“组建(B)”菜单下的“执行”命令,生成.exe文件。必要时,可在过程

16、中设置断点,以便核查相应指令的运行结果。2、改进初始化NetBIOS程序编写源程序:对(1)的程序进行改造 形成目标程序(同上)运行程序3、记录并理解运行显示的信息4、回答思考题并撰写实验报告七、思考题1、系统的Lana编号个数与什么有关,复位NetBIOS都能成功吗,不成功的原因是什么?2、运行加名字和删除名字的程序(程序可参考书上P35P36),若注册成功,输出对应的名字编号。八、实验报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的注意事项及可能出现

17、的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法。九、实验例程#include #include #include #include #include #pragma comment(lib,netapi32.lib)#d

18、efine MAXSESSIONS 254#define MAXNAMES 254UCHAR LanaEnum(LANA_ENUM *lenum) NCB ncb; memset(&ncb,0,sizeof(NCB); ncb.ncb_command=NCBENUM; ncb.ncb_buffer=(PUCHAR)lenum; ncb.ncb_length=sizeof(lenum); ncb.ncb_cmd_cplt=Netbios(&ncb); return(ncb.ncb_cmd_cplt);UCHAR RestNCB(UCHAR lana) NCB ncb; UCHAR ucRc; m

19、emset(&ncb,0,sizeof(NCB); ncb.ncb_command=NCBRESET; ncb.ncb_callname0=MAXSESSIONS; ncb.ncb_callname2=MAXNAMES; ncb.ncb_callname3=true; ncb.ncb_lana_num=lana; return(ucRc);void main() LANA_ENUM lenum; if(LanaEnum(&lenum)!=NRC_GOODRET) printf(LanaEnum Error!); return; printf(LanaEnum ok!); if(RestNCB(

20、lenum.lana0)!=NRC_GOODRET) printf(ResetNcb Error!); else printf(ResetNcb Ok!);实验三 基于NetBIOS简单数据报通信程序设计实验学时:2实验类型:验证实验要求:选做一、实验目的1、掌握如何在NetBIOS接口上开发数据报通信程序;2、实现并分析一对一与一对多通信。二、实验内容1、创建两个应用程序:“abc1”和“xyz1”,其中“abc1”负责数据报的发送,而“xyz1”负责接收。具体通信过程如下:当用户从键盘上输入一个字符串后,发送程序“abc1”就将该字符串作为数据报直接发送给接收方“xyz1”,接收方在收到一

21、个数据报后,将收到的字符串显示在屏幕上,如果用户输入的是“exit”,则双方结束通信,程序退出。2、对1的程序进行改造以实现组播通信,其中多播组名为“group1”。三、实验原理、方法和手段编写NetBIOS应用程序,实现两个应用程序间的数据通信。分析简单数据报通信的原理,比较点对点通信与多播通信的区别与实现方法的不同,设计程序实现相关功能。四、实验组织运行要求根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握基于NetBIOS的点通信与多播通信的区别与实现方法 难点:实验程序的问题描述、实现算法、数据结构。五、实验条件具备Windows操作系统、带有VC+

22、软件的PC机。六、实验步骤1、简单点对点数据报通信程序流程图:ResetNcb()AddName()DatagramSend()DeleteName()ResetNcb()AddName()DatagramRecv()DeleteName()发送数据报Abc1xyz1 编写源程序:(程序可参考教材上P38P42) 加文件头#include #pragma comment(lib,netapi32.lib) 或者 设置:vc里面,菜单 Project - Settings - Link 里面选择 General 在Object/Library Moduless一栏里面添加netapi32.lib

23、 形成目标程序单击菜单栏的“组建(B)”菜单下的“编译”命令,进行编译。在“输出”窗口的“组建”标签页下查看是否存在编译错误,若有,则进行调试。运行程序单击菜单栏的“组建(B)”菜单下的“执行”命令,生成.exe文件。必要时,可在过程中设置断点,以便核查相应指令的运行结果。2、组播通信程序设计 只需对1的程序进行简单修改即可实现,关键是增加组名的注册(程序如下)。UCHAR AddGroupName(CHAR *Name,UCHAR Lana,UCHAR *NameNum) NCB ncb; memset(&ncb,0,sizeof(NCB); ncb.ncb_command=NCBADDGR

24、NAME; ncb.ncb_lana_num=Lana; strcpy(char *) ncb.ncb_name,Name); Netbios(&ncb); *NameNum=ncb.ncb_num; return (ncb.ncb_cmd_cplt);该应用程序的测试请在局域网内的多台主机上实现。3、记录并理解运行显示的信息4、回答思考题并撰写实验报告七、思考题1、如何对上述通信过程作些修改,以实现双向通信(即abc既能发送数据给xyz,也能接收xyz传给它的数据),请画出它们的通信模型,并给出实现代码。2、如何对上述通信过程作些修改,以实现广播通信。(程序可参考教材上P43P47)八、实验

25、报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思

26、考题,提出实验结论或提出自己的看法。九、实验例程实验四 基于NetBIOS会话通信程序设计实验学时:2实验类型:验证实验要求:选做一、实验目的学会如何在NetBIOS接口上建立会话,实现面向连接的可靠通信方式。通过程序设计,掌握会话通信的原理及基本实施方法。二、实验内容设计两个应用程序分别实现如下功能:服务器方:服务器进程使用NCBLISTEN命令侦听客户进程的连接请求,当客户进程的连接请求到来时,响应并建立会话,紧接着向客户方发送一个“Welcome to Server!”的消息,芮后,服务器进程进入循环接收等待,每收到一个客户进程发来的数据,便将其显示,然后继续等待接收下一个数据。当客户进

27、程拆除会话时,服务器进程随即退出循环,等待下一次的连接请求。客户方:客户进程使用NCBCALL命令向指定服务器发出连接请求,会话建立后,紧接着设置接收。当收到服务器发来的“Welcome to Server”消息后,客户进程进入循环发送状态,用户通过键盘每键入一个字符串,便通过指定的会话链路将该字符串发送到服务器方,然后等待用户发送下一个数据。当用户键入的是“exit”时,客户进程拆除会话,退出循环,结束本次会话。三、实验原理、方法和手段编写NetBIOS应用程序,实现两个应用程序间的会话通信。分析面向连接的会话通信的原理,结合NetBIOS通信模式,设计程序实现基于NetBIOS会话通信。四

28、、实验组织运行要求根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握基于NetBIOS的会话通信的模式与实现方法 难点:实验程序的问题描述、实现算法、数据结构。五、实验条件具备Windows操作系统、带有VC+软件的PC机。六、实验步骤1、设计及运行程序ResetNcb()AddName()Listen()DeleteName()ResetNcb()AddName()Call()DeleteName()建立会话连接服务器客户机HangUp()Recv()Send()Send()Welcome to Server!发送用户数据给服务器关闭会话用户输入“exit

29、”HangUp() 程序流程图:SendRecv() 编写源程序:(程序可参考教材上P49P55) 形成目标程序单击菜单栏的“组建(B)”菜单下的“编译”命令,进行编译。在“输出”窗口的“组建”标签页下查看是否存在编译错误,若有,则进行调试。 运行程序单击菜单栏的“组建(B)”菜单下的“执行”命令,生成.exe文件。必要时,可在过程中设置断点,以便核查相应指令的运行结果。2、记录并理解运行显示的信息3、回答思考题并撰写实验报告七、思考题1、会话通信与数据报通信有什么异同点。2、简述如何利用超时机制进行动态会话两路的维护。八、实验报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并

30、写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法。九、实验例程实验五 Winso

31、ck网络信息查询函数的应用实验学时:2实验类型:验证实验要求:必做一、实验目的Winsock主要通过三类查询函数(主机信息查询、网络信息查询和套接字地址信息查询)来获取网络信息。通过本实验,要求熟练掌握几个Winsock基本函数的使用: Winsock初始化函数:WSAStartup()和WSACleanup() 字节顺序转换函数:htons()、htonl()和ntohs()、ntohl() 地址转换函数:inet_addr()和inet_ntoa() 主机信息查询函数:gethostbyname()和gethostbyaddr()二、实验内容编写程序实现如下信息的查询: 已知端口号8080

32、,输出其网络顺序2字节值与主机顺序2字节值; 已知IP地址172.168.1.3,输出其网络顺序4字节值; 输入的是IP地址,则由IP地址查询对应的计算机名或网络名; 输入的是计算机名,则由计算机名查询该主机的IP地址。三、实验原理、方法和手段掌握Winsock编程的方法,应用Winsock API编写程序,实现计算机网络地址信息的查看及相关处理。四、实验组织运行要求根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握Winsock API编程查看网络信息 难点:实验程序的问题描述、实现算法、数据结构。五、实验条件具备Windows操作系统、带有VC+软件的P

33、C机。六、实验步骤1、编写源程序 2、调试和运行程序3、记录并理解运行显示的信息(1)查询本机信息: 首先,利用windows自带工具查询本机的计算机名和IP地址,方法如下:l 打开“我的电脑”的“属性”,选择“计算机名”标签可以获取本机的计算机名;l 在命令提示符中键入ipconfig/all可以获取本机的IP地址并做好记录。本机的计算机名:本机的IP地址: 运行程序,作如下测试:l 键入本机的计算机名,记录屏幕上显示的结果。l 键入本机的IP地址,记录屏幕上显示的结果。 结论:(2)查询同网中其他主机的信息(至少选择三台不同的主机,重复步骤,请做好相关记录): 查询某主机的计算机名和IP地

34、址,方法同上。请记录它的计算机名和IP地址。 运行程序,作如下测试:l 键入计算机名,记录屏幕上显示的结果。l 键入IP地址,记录屏幕上显示的结果。 根据测试的结果,回答下列问题:问题1:(2)中得到的数据与(1)中的一致吗?问题2:除了计算机名和IP地址还可以查询哪些信息,请你修改程序实现。4、回答思考题并撰写实验报告七、思考题运行程序,分别输入错误的(或不存在的、不在同一网络中的)IP地址和计算机名,记录屏幕上显示的信息。你的程序对错误的处理正确吗?八、实验报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、

35、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法。九、实验例程实验六 Winsock会话通信程序设计实验学时:2实验类型:验证实验要求:必做一、实验

36、目的学习如何利用会话套接字实现可靠的面向连接的通信过程。通过本实验,要求熟练掌握几个Winsock基本函数的使用:基本Winsock函数:socket()、bind()、listen()、accept()、connect()、shutdown()、closesocket()Winsock数据传输函数:send()、recv()二、实验内容1、设计一个Winsock会话通信程序:服务器端程序在2000端口进行侦听,并进入等待连接状态。客户端尝试与服务器端连接。连接一旦建立,服务器和客户端之间就可以进行通信。客户端提示输入一个数字,比如输入50,那么客户端会从“data0”到“data49”发送5

37、0个字符串,输入0退出。2、 设计一个FTP小程序:服务器端程序在2000端口进行侦听,并进入等待连接状态。客户端尝试和服务器端建立连接。连接一旦建立,就可以在服务器端和客户段之间进行文件传输,程序里要求文件小于32KB。客户端提示输入待传的文件名,该文件名可以带路径,服务器端收到文件后,将其写到相应位置。注:服务器端使用的端口号为2000,客户端使用的端口号为3000。三、实验原理、方法和手段掌握Winsock编程的方法,应用Winsock API编写程序,实现会话通信程序设计。通过程序的调试与运行,进一步了解Winsock编程的原理及通信方法。四、实验组织运行要求根据本实验的特点、要求和具

38、体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握Winsock API编程实现会话通信程序设计 难点:实验程序的问题描述、实现算法、数据结构。五、实验条件具备Windows操作系统、带有VC+软件的PC机。六、实验步骤1、阅读源程序 程序参见实验例程 2、调试和运行程序3、记录并理解运行显示的信息4、回答思考题并撰写实验报告七、思考题假设服务器端程序与客户端程序分别运行在同一个局域网内的两台不同主机上,且已知服务器的主机名为“testserver”,服务器端使用的端口号为2000,客户端使用的端口号为3000,而客户端不知道服务器的IP地址,试问这种情况下,客户端应该如何连接服务器

39、?客户端的程序应该怎样修改?请写出修改部分的代码。八、实验报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现象、实验操作

40、的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法。九、实验例程实验七 Winsock数据报通信程序设计实验学时:2实验类型:验证实验要求:选做一、实验目的学习如何利用套接字实现两种特殊的数据报通信多播和广播。通过本实验,要求掌握以下内容: 使用Winsock实现广播通信和多播通信的一般步骤 利用setsockopt()函数设置套接字选项:如何设置套接字的广播属性;如何加入或离开一个多播组。二、实验内容1、编写程序实现实现广播通信:发送方的IP地址设为本机地址,在端口3000上进行广播发送,发送50个数据,数据内容分别为data0data49。接收方在

41、端口2000进行数据的接收。2、实现IP多播:接收方首先加入一个指定的组“234.5.6.7”,发送方只是将数据发给多播组,本身并不接受多播组内成员发送的数据。接收方利用一个循环结构,等待进入的数据。三、实验原理、方法和手段掌握Winsock编程的方法,应用Winsock API编写程序,实现数据报通信程序设计。通过程序的调试与运行,进一步了解Winsock编程的原理及通信方法。四、实验组织运行要求根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握Winsock API编程实现数据报通信程序设计 难点:实验程序的问题描述、实现算法、数据结构。五、实验条件具备Windows操作系统、带有VC+软件的PC机。六、实验步骤1、阅读源程序 程序参见实验例程 2、调试和运行程序3、记录并理解运行显示的信息4、回答思考题并撰写实验报告七、思考题比较基于Winsock的广播通信与多播通信的不同。八、实验报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的注意事项及可能出现的现象等做到心中有数,但这些不要求写在预

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号