网络编程技术实验指导书2010之实验一
网络编程实验报告
网络编程实验报告实验一TCP Socket API程序设计一、预备知识1.网络编程基本概念网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。
在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。
套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。
图1-1 TCP通信流程2.TCP通信流程TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。
二、实验目的1.了解Winsock API编程原理;2.掌握TCP Socket程序的编写;3.了解C/S模式的特点;4.学会解决实验中遇到的问题。
三、实验任务使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。
四、实验环境及工具1. Windows2000/XP/72. Visual C++开发平台3. Visual Studio2010五、实验内容和步骤参照《Visual C++网络编程教程》书中81页,TCP Socket API 程序设计。
连接:void CChatClientDlg::OnConnect(){WSADATA wsd; //WSADATA结构WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字//服务器地址sockaddr_in serveraddr;UpdateData();if(ServerIP.IsBlank()){AfxMessageBox("请指定服务器IP!");return;}if(sPort.IsEmpty()){AfxMessageBox("请指定端口!");return;}//获取服务器进程的IP和端口BYTE nFild[4];CString sIP;ServerIP.GetAddress(nFild[0],nFild[1],nFild[2],nFild[3]);sIP.Format("%d.%d.%d.%d",nFild[0],nFild[1],nFild[2],nFild[3]);//设置服务器地址结构的内容serveraddr.sin_family = AF_INET;serveraddr.sin_addr.S_un.S_addr = inet_addr(sIP);serveraddr.sin_port = htons(atoi(sPort));//发起连接须指明要访问的服务器进程地址,这个地址存储在serveraddr中if(connect(m_client,(sockaddr*)&serveraddr,sizeof(serveraddr)) ! = 0){MessageBox("连接失败");return;}else{m_ListWords.AddString("连接服务器成功!");m_ListWords.SetT opIndex(m_ListWords.GetCount() - 1);}WSAAsyncSelect(m_client,m_hWnd,10000,FD_READ|FD_CLO SE); //①//界面完善ServerIP.EnableWindow(false);ServerPort.EnableWindow(false);m_ButtonConnect.EnableWindow(false);m_ButtonDisconnect.EnableWindow();m_EditWords.EnableWindow();m_ButtonSend.EnableWindow();m_ButtonExit.EnableWindow(false);m_ButtonClear.EnableWindow();}“断开”按钮的事件过程代码如下:void CChatClientDlg::OnDisconnect(){//断开与服务器的连接closesocket(m_client);m_ListWords.AddString("从服务器断开");m_ListWords.SetT opIndex(m_ListWords.GetCount() - 1);ServerIP.EnableWindow();ServerPort.EnableWindow();m_ButtonConnect.EnableWindow();m_ButtonDisconnect.EnableWindow(false);m_EditWords.EnableWindow(false);m_ButtonSend.EnableWindow(false);m_ButtonExit.EnableWindow();}“发送”按钮事件过程代码如下:void CChatClientDlg::OnSend(){//向服务器发送信息UpdateData();if(m_sWords.IsEmpty()){AfxMessageBox("发送的消息不能为空!");return;}//开始发送数据int i = send(m_client,m_sWords.GetBuffer(0),m_sWords.GetLength(),0);m_ListWords.AddString("发送:" + m_sWords);m_ListWords.SetT opIndex(m_ListWords.GetCount() - 1);}BOOL CChatClientDlg::PreTranslateMessage(MSG* pMsg){if(pMsg->message == 10000) //识别应用程序中定义的消息号{switch(pMsg->lParam) //判断网络事件类型{case FD_READ:this->ReceiveData(); //若为FD_READ则接收数据break;case FD_CLOSE:this->CloseSock(); //如果服务端断开,客户端也断开break;}}elsereturn CDialog::PreTranslateMessage(pMsg);}下面来实现ReceiveData()和CloseSock()方法。
《网络编程技术实习》指导书
《网络编程技术实习》指导书一、教学目的通过本次课程实习,使学生进一步理解、领会C++语言和网络编程技术,把所学的知识运用到具体的程序设计当中去,编写一个接近实际的应用程序。
本课程实习是一门综合性实验。
通过本次课程实习/实习,掌握VC++应用程序设计;加深对TCP/IP协议的理解;掌握C/S编程模式;掌握Socket机制、传输控制协议;用户数据报协议;掌握网络抓包的原理;掌握网络编程应用程序分析、设计、编程和调试的整个过程。
二、设备及工具硬件:微机70台以上,P4以上处理器,256M以上内存、Ethernet网卡,交换机软件:Windows2000/xp操作系统,VC6.0编程环境。
三、网络编程技术实习课题选题一览表各位同学请在上述列表中选择课题,并按课题要求独立完成该课题,禁止抄袭与复制。
四、课程实习/实习过程与具体要求1. 学习课程实习指导书学习研究课程实习指导书。
2. 确定目标、初步方案,准备、试用开发环境与工具选题并确定课题目标及初步方案;选择、准备、试用开发平台及其他有关开发工具。
3. 学习与搜集素材,借阅、购置必要的书籍与材料利用各种途径(图书馆、因特网、书店、同学亲友等)进行针对性的学习并收集相关素材,包括精选、购置必要的书籍。
4. 课堂与课下结合开发项目因为需要自学和探索的内容较多,每个学生要特别发挥积极主动精神投入课程实习和开发活动。
除了实验室正式安排的课程实习时间之外,学生需要充分利用好课余时间,自己有计算机的学生更要充分利用有利条件以取得尽可能好的开发成果,力争获得最大收益。
5. 各阶段的开发工作开发过程中,相同或相近课题的同学可以进行相互讨论,并做好讨论记录,但开发的程序代码以及相关文档不得相互借用或相互复制。
讨论的可能内容可以是:1) 选题、开发方案研讨。
2) 搜集、查阅资料。
3) 系统的分析与设计。
4) 程序模块了的工作流程。
5) 完成测试,整理开发文档、汇总。
6. 做好开发记录、总结建议每位同学建立自己个人的开发记录或日志。
Java程序设计网络编程实验指导书
Java程序设计与网络编程实验指导书一.实验教学目的、内容和要求1、实验教学目的Java语言及网络编程实验是将课程教学中所讲授知识与实践相联系的重要环节,通过实验加深学生对所学知识的理解和认识,增强实践能力。
促进学生熟悉Java语言的语法,培养面向对象的程序设计的设计思路,初步掌握利用Java平台开发简单应用程序以及网络应用程序等的能力,为以后进一步学习和工作打好基础。
二、实验内容、要求、步骤及代码和实验总结:实验项目一:熟悉Java基本编程实验时间:4.5实验要求:1)掌握JDK的安装及配置方法;2)熟悉Java程序的基本结构和Java的基本语句;3)并掌握其编辑、编译、运行方法。
实验步骤:1. 网上下载JDK;2. 安装JDK3. 设置环境变量。
4.安装UltraEdit 编写程序的工具5.Java程序示例代码//例1-1,1-2,1-3写出来。
实验总结:1.Java程序安装JDK中包含有JRE运行环境,JDK安装目录应在Path中设置2. Java是纯类的编程,main 函数也是定义在公共类中。
公共类与程序名相同。
实验项目二:Java面向对象技术编程实验时间:4.24实验要求:1)掌握类和方法定义的基本方法;2)掌握Java的面向对象程序的基本编制和调试方法。
3)尽量用到继承、接口、上转型对象和包等技术,来求解几何图形的周长面积。
实验步骤:1.定义一个图形接口,定义求图形面积,周长和图形名称的抽象方法。
2.定义一个点的类,包含两个坐标。
3.定义一个抽象图象显示类,包含面积、周长和名称成员,和构造函数、输出函数。
4.具体的几何图形类如三角形、圆和长方形实现图形接口中的抽象方法。
5.定义一个图形Drawing类继承图象显示类,把某个图形的面积、周长和名称作实参传过来,即可定义其图形Drawing类的一个对象,再调用输出函数,可把该图形的面积、周长和名称输出。
//将P116 页例5.8简单案例中的某一个图形的代码写出来。
网络编程设计实验指导书范文
实验一 JavaEE初级编程(2 学时)1、实验目的(1)掌握Java程序运行环境的安装与配置。
(2)掌握Tomcat服务器的安装及环境配置方法。
(3)掌握对MyEclipse的集成开发环境的配置,为Java EE程序的实验做好准备工作。
(4)掌握编写与运行JSP程序的方法。
(5)掌握JSP语言的基本编程方法,了解JSP中各种元素及标签的使用。
2、基本要求:(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。
(2)独立完成所布置习题。
(3)为保证尽量在统一安排的上机时间内编译运行通过程序,应事先设计好程序。
(4)认真完成每次实验,并写出实验报告。
3、实验内容和步骤:(1)安装JDK软件包。
(2)设置环境变量,包括设置Java的运行路径和classpath。
(3)安装tomcat服务器,并了解服务器的文件结构。
(4)安装MyEclipse,学会在该环境中如何配置Tomcat服务器,完成Java EE项目的部署及运行。
(5)建立一个项目user,在其中首先创建一个注册页面,要求在注册页面中输入用户注册信息,如果注册成功,则给出成功提示,如果注册失败,则将页面返回到注册页面,并给出错误提示。
●建立一个SQLServer数据库Test,在其中建立数据表user,表中包含用户注册时所需要的各种信息字段,包括username,password,sex,age,hobby等,并向其中输入几条用户信息。
●建立一个JSP 注册页面regist.jsp,⏹在其中通过form表单输入注册所需要的用户名称userName,用户密码userPassword,重复密码RUserPassword,用户性别userSex及年龄userAge还有用复选框表示的用户爱好hobby等信息,⏹输入信息之后通过点击提交按钮submit,将这些信息提交到另一个regist_User.jsp页面。
●在regist_User.jsp页面中完成数据库的验证,根据验证结果给出提示,并转到相应的处理页面。
网络编程技术实验指导书之实验一.docx
《网络编程技术》实验指导书2015 版(网络工程专业)山东建筑大学计算机科学与技术学院网络工程教研室袁卫华实验一Java I/O和Java线程应用一、实验目的熟悉java运行环境,编程常握Java输入输出流和Java线程的应用。
二、实验环境一般微机即可,软件MyEclipse, JDK 1.5以上版本即可。
三、实验内容1)搭建java运行环境2)Java 10流的用法3)Java线程四、实验步骤1.完成以下程序。
第一题:利用Jam输入输出流编程实现计算器。
功能:(1)先输入第一•组操作数,并将其存放在一个文件中。
(2)然后输入第二组操作数,并将其存放在第二个文件中。
(3)选择一•种加减乘除运算。
(4)从第一个文件中取第一个操作数,从第二个文件中取第二个操作数,将其按照第三步中选择的运算做加减乘除后存入到第三个文件中。
(5)从第三个文件中读取出运算结果。
其他要求:(1)要求处理double型或float型数据。
(2)能够处理程序运行结果中的各种异常。
提示:♦程序运行截图请输入您要选择的操作(请输入中的任一数字):1:输入第一组操作数;2:输入第二组操作数;3:进行运算;4:退出系统;图1程序主界面开始向文件1中输入第一组数字:请输入操作数(输入己n 遐ENC 结束输入):12请输入操作数(输入己n 遐ENC 结束输入):21请输入操作数(输入己n 遐ENC 结束输入):33请输入操作数(输入己n 遐ENC 结束输入):saf数字格式不对!请输入操作数(输入己n 遐ENC 结束输入): end图2输入第一组操作数操作界面2开始向文件2中输入第二组数字:请输入操作数(输入结束输入):1请输入操作数(输入结束输入):2请输入操作数(输入结束输入):3请输入操作数(输入结束输入):4请输入操作数(输入结束输入):end图3输入第二组操作数操作界面请输入您要执行的加减乘除运算(请输入1 - - 5中的任一数宇) 1: 2: 3: 图4主界面中选择3进入加减乘除操作选择界面加减乘除返请输入您要执行的加减乘除运算(请输入中的任一数字):1:加法;2:减法;3:乘法;4:除法;5:返回上一级;图5加法运算结束后从文件3中读出的运算结果注意:红色框线所标注的为此次运算结果,也可以每次只存储并本次操作的 运算结果,这取决于FileOutputStream 构造方法的格式。
Java语言及网络编程实验指导书_1
实验一熟悉Java基本编程一、实验目的1、掌握Java 开发环境的建立和测试方法2、熟悉Java 基本编程3、掌握Java程序的编辑、编译以及运行方法二、预备知识1. JDK的安装设置:JDK/JRE/JVM;2. Eclipse集成开发环境的绿色安装;3. 掌握Java语言的基本知识(Java类文件布局、程序入口main()函数、数据类型、运算符和表达式、控制语句等);4. 简单的错误调试。
三、实验内容1. 用文本文件编辑Java应用程序源文件,并使用JDK提供的Java工具包进行编译、运行;2. 用Eclipse编辑Java应用程序源文件并编译、运行;3. 用文本文件编辑Java Applet源文件,并使用JDK提供的Java工具包进行编译、运行;4. 用Eclipse编辑Java Applet源文件并编译、运行;5. 编辑简单Java源程序并编译、运行。
四、实验步骤(1) 检查所用的计算机系统:1. 确认是否已安装JDK,并确认系统的环境变量设置;2. 确认目录D:\eclipse3.3,是否已绿色安装Eclipse集成开发环境。
(2) 实验内容一要求:用文本编辑实现下述Java应用程序源文件包:com.example.hello类名:HelloDate输出:Hello, it’s: 当前系统日期提示:当前系统日期可以通过生成Date对象来实现源码:HelloDate.javapackage com.example.hello;import java.util.Date;public class HelloDate {public static void main(String[] args) {System.out.println("Hello, it’s:");System.out.println(new Date());}}(3) 实验内容二要求:对上述(1)的内容用Eclipse环境实现(4) Eclipse集成开发环境的基本使用方法1. 创建一个新的Java项目从Eclipse IDE,选择File > New > Project 查看项目向导。
网络程序设计指导书实验1-4
实验一、基于TCP 协议的网络程序调试(一)实验目的与要求初步掌握TCP 方式的网络编程模式,能运用Winsock 提供的API 函数接口进行网络程序的编写。
(二)实验设备与环境微机PC,安装Windows 操作系统,安装Microsoft Visual C++ 6.0。
(三)实验内容和步骤1.建立服务器工程,在Visual C++6.0 平台下,file‐>new‐>projects‐>win32 console application.生成一个project name 为tcp_server 的项目。
再通过file‐>new‐>files 生成一个C++的空文件。
输入下面给出的代码。
int main() //主函数开始{WSADATA data; //定义WSADATA 结构体对象WORD w=MAKEWORD(2,0); //定义版本号码char sztext[]="欢迎你\r\n"; //定义并初始化发送到客户端的字符数组::WSAStartup(w,&data); //初始化套接字库SOCKET s,s1; //定义连接套接字和数据收发套接字句柄s=::socket(AF_INET,SOCK_STREAM,0); //创建TCP 套接字sockaddr_in addr,addr2; //定义套接字地址结构int n=sizeof(addr2); //获取套接字地址结构大小addr.sin_family=AF_INET; //初始化地址结构addr.sin_port=htons(75);addr.sin_addr.S_un.S_addr=INADDR_ANY;::bind(s,(sockaddr*)&addr,sizeof(addr));//绑定套接字::listen(s,5); //监听套接字printf("服务器已经启动\r\n"); //输出提示信息while(true){s1=::accept(s,(sockaddr*)&addr2,&n); //接受连接请求if(s1!=NULL){printf("%s 已经连接上\r\n",inet_ntoa(addr2.sin_addr));::send(s1,sztext,sizeof(sztext),0); //向客户端发送字符数组}::closesocket(s); //关闭套接字句柄::closesocket(s1);::WSACleanup(); //释放套接字库if(getchar()) //如果有输入,则关闭程序{return 0; //正常结束程序}else{::Sleep(100); //应用睡眠0.1 秒}}}通过添加必要的头文件,使其能正确编译通过后,但链接时会提示无法定位代码中的函数实现,可以有两种方法解决,第一,添加#pragma comment(lib,"WS2_32.lib") // 显式连接套接字库,其次是在菜单project 里面选择settings‐>link 里面的object/library modules 添加WS2_32.lib。
网络编程实验1
其中4个编辑框(EditBox,8个按钮(Button),一个列表框(ListBox),这些控件的属性设置如下:
控件类型
控件ID
Caption(标题)
说明
EditBox
IDC_EDIT_IP
输入服务器IP地址
EditBox
IDC_EDIT_Port
输入服务器端口
EditBox
IDC_EDIT_UserName
dwFlag, 0) ))
{
//如果没有找到文件,则判断是否是查找错误
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox("文件不存在!!!", "错误提示");
//关闭句柄
InternetCloseHandle(hDir);
//设置鼠标为箭头形式
功能:修改服务器的当前目录下的某个文件的名称
入口参数:HINTERNET为连接句柄,strSourceName原来的文件名,strDestName为改变后的文件名;
代码:参考后面的附录1
(8)intDeleteFile(HINTERNET hConnect, LPCSTR strSourceName)
设置当前目录
Button
IDC_BUTTON_UpFile
上传文件
Button
IDC_BUTTON_DownFile
下载文件
Button
IDC_BUTTON_ChgFile
更改文件
Button
IDC_BUTTON_DeleteFile
删除文件
ListBox
IDC_LIST_File
《网络编程技术》实验
HTTP协议与Web开发
了解HTTP协议在Web开发中的应用,如Web浏览器的请求和服务器响应过程。
Web开发技术
Web开发框架
介绍常用的Web开发框架,如Django、Spring和Express 等。
前端技术
了解HTML、CSS和JavaScript等前端开发技术,以及前 端框架如React、Vue和Angular等。
选择适合自己需求的Web开发框架, 如Django、Spring等。
学习框架基础
了解所选框架的基本概念、原理和常 用技术。
创建简单的Web应用
使用所选框架创建一个简单的Web应用,包 括页面布局、数据展示和用户交互等功能。
集成后端服务
将Web应用与后端服务进行集成,实 现数据的处理和存储等功能。
部署应用
。
网络协议栈软件
如TCP/IP协议栈,用于实现 网络通信的核心功能。
网络编程语言
如Python、Java、C等,用 于编写网络应用程序。
网络测试工具
如Wireshark、ping、 traceroute等,用于测试和调
试网络连接。
实验网络环境
局域网
用于模拟内部网络环境,实现 计算机之间的通信。
广域网
实验问题与改进建议
实验问题1
在网络通信过程中,有时会出现丢包现象, 导致数据传输不完整。
改进建议1
采用更可靠的数据传输协议,如TCP协议,来 保证数据的完整性和可靠性。
实验问题2
在网络通信性能测试中,发现延迟较高,不能满 足实时通信的需求。
改进建议2
优化网络通信算法,减少数据传输和处理的时间, 从而降低延迟。
《网络编程技术》实验指导书
《网络编程技术》实验指导书Last updated: 4/27/2022《计算机网络》课程设计--协议设计与编码实现指导书1实验1. Windows平台简单套接字编程实验类型:设计性一、实验环境操作系统:Windows编程工具及集成开发环境:VC++二、实验目的和要求实验目的:掌握Windows平台上简单的客户机端和服务器端的套接字编程。
实验要求:(1)在Windows上,编写、编译1个客户机端程序和1个服务器端程序。
要求客户机端程序能发送请求给服务器端程序,服务器端程序收到后能发送本机时间给客户机端程序。
客户机 服务器端服务器端=====时间===》客户机(2)在相同或不同机子上,先运行服务器端程序可执行文件,后运行客户机端程序可执行文件。
TCP/UDP赋予每个服务一个唯一的协议端口号。
服务器程序通过协议端口号来指定它所提供的服务,然后被动地等待通信。
客户在发送连接请求时,必须说明服务器程序运行主机的IP地址和协议端口号来指定它所希望的服务。
服务器端计算机通过此端口号将收到的请求转向正确的服务器程序。
大多数网络编程语言都提供或者使用控件封装了套接字应用程序接口(Socket API),应用程序通过套接字接口调用来实现和传输层交互。
用户目前可以使用两种套接口,即流套接字TCP和数据报套接字UDP。
流式套接字定义了一种可靠的面向连接的服务,提供了双向的,有序的,无重复的数据流服务。
数据报套接字定义了一种无连接的服务,支持双向的数据流,但并不保证是可靠,有序,无重复的。
也就是说,一个从数据报套接字接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同。
套节字API主要包括表1所示的接口。
(套接字API)使用面向连接的套接字编程,通过图2来表示其时序。
套接字工作过程如下:服务器首先启动,通过调用socket()建立一个套接字,然后调用bind()将该套接字和本地网络地址联系在一起,再调用listen()使套接字做好侦听的准备,并规定它的请求队列的长度,之后就调用accept()来接收连接。
网络编程技术实验指导书
网络编程技术实验指导书李笑平编淮阴工学院计算机工程学院2010年1月目录实验1:基于NetBIOS的网络通信程序设计 (1)实验2:基于socket的简单网络程序设计 (2)实验3:流式套接字程序设计 (10)实验4:数据报式套接字程序设计 (12)实验5:原始套接字程序设计 (15)实验6:基于WinPcap的程序开发 (18)实验7:基于CAsyncSocket类网络通信程序设计 (34)实验1:基于NetBIOS的网络通信程序设计1 实验目的与要求掌握NetBIOS方式的网络编程模式。
理解并能应用NetBIOS实现C/S会话通信程序设计。
2 实验设备与实验环境连接到互联网上的IBM PC机两台。
计算机硬件要求:Intel Pentium5 处理器、256MB以上内存,Ethernet网卡,网线若干。
计算机软件要求:MS Windows 9x/2000/XP操作系统,TCP/IP协议,Visual c++6.0/.net 系统。
3 实验内容与步骤利用NetBIOS编写C/S会话通信程序以实现如下程序设计要求,客户端与服务器建立会话连接之后,客户端向服务器发送一个简单的四则算式(只含一个算符),服务器收到这个算式后,对其进行计算,并将计算结果回送给客户端,客户端将计算结果显示出来。
注意:整个程序执行过程要求是基于NetBIOS命令实现的。
程序的详细设计过程可参考教材。
实践题1)在完成上面这个实验的基础上,将服务器和客户端分别放在两台不同的机器上进行测试。
2)在以上程序的基础上进行改进,使服务器能提供对复杂四则算式的求值服务。
即客户端发送一个复杂的四则算式,服务器收到此算式后对其求值并将结果回送给客户端。
4 实验小结1)要求理解掌握NetBIOS的工作原理。
5 实验报告本次交实验报告,内容包括:1>实验目的与要求;2>实验设备与实验环境;3>实验内容与实验步骤(实验步骤、源代码);4>实验心得(可以是实验总结、难点讨论、意见建议等)。
《网络编程技术》实验指导书--学生版
《网络程序设计》课程设计指导书潘超实验一SOCKET基本编程1、实验目的1、掌握使用LINUX环境下GCC编译器的基本方法;2、掌握SOCKET套接字的基本编程模板;3、掌握套接字基本编程,掌握点分十进制和网络二进制IP地址之间的转换。
4、通过使用gethostbyname和gethostbyaddr来获取本地和远程用户的地址信息。
2、实验要求1、认真阅读和掌握本实验相关的知识点。
2、上机编写运行本程序。
3、保存和打印出程序的运行结果,并结合程序进行分析。
3、注意事项:在LINUX系统上为每个用户创建一个目录,专门用于编译和运行实验程序。
实验二服务器与单客户的连接处理1、实验目的1.掌握单用户客户端跟服务器的连接和数据交互及处理。
2、实验要求1.认真阅读和掌握本实验的相关知识点。
2.上机编写并运行本程序。
3.保存和打印出程序的运行结果,并结合程序进行分析。
3、实验内容客户端:1.从命令行读入服务器的IP地址;并连接到服务器;2.循环从命令行读入一行字符串,并传递给服务器,由服务器对字符串反转,并将结果返回客户程序;3.客户程序显示反转后的字符串;服务器端:4.接收客户的连接请求,并显示客户的IP地址和端口号;5.接收客户传来的字符串,反转后传递给客户;1、实验目的1.掌握多进程服务器的知识。
2.掌握多进程程序的编写方法。
2、实验要求1.认真阅读和掌握本实验的相关知识点。
2.上机编写并运行程序。
3.保存和打印出程序的运行结果,并结合程序进行分析。
3、实验内容1、服务器等待客户连接,连接成功后向客户发送欢迎信息,接着接收该客户的名字并显示,然后接收来自客户的信息(字符串),将该字符串反转,并将结果送回客户。
要求服务器具有同时处理多个客户的能力。
2、客户首先与服务器连接,接着接收用户输入客户的名字,将该名字发送给服务器,然后接收用户输入的字符串,并发送给服务器,然后接收服务器返回的经处理后的字符串,并显示之。
《.NET技术》实验指导书
《.NET技术》实验指导书实验一Windows窗体编程一、实验目的1、了解.NET开发环境。
2、掌握基本的Windows编程。
3、掌握窗体的设置与处理。
4、掌握常用控件的设置与处理。
5、掌握.NET程序调试的方法。
二、实验内容1、运行Visual ,观察.NET运行环境,熟悉集成开发环境。
2、在开发环境中选择Windows应用程序建立对应的项目,然后进行Windows窗体应用程序开发,依次完成以下内容:1)创建简单的Windows窗体2)设置窗体的属性3)编写窗体事件处理代码4)使用控件5)控件的格式处理6)控件使用方法7)使用窗体菜单8)处理多窗体应用程序3、观察.NET的调试工具,并使用调试工具调试已创建的程序。
三、实验要求1、实验前根据实验内容复习相关章节,设计出程序框架。
2、编写相应的程序,写出完整的程序代码,包括注释,注意书写的层次结构。
3、调试程序,完成程序。
4、整理实验步骤,总结经验和体会。
5、上交实验报告和源程序。
实验二数据流和文件处理一、实验目的1、了解.NET中和流相关的类。
2、了解.NET中和文件操作相关的类。
3、掌握文件和目录的创建方法。
4、掌握文件和目录的删除和修改方法。
5、掌握列举目录下的内容的方法。
6、掌握文本文件的读写方法。
7、掌握二进制文件的读写方法。
二、实验内容1、运行Visual ,观察.NET类库中和流相关的类的说明。
2、观察.NET类库中和文件操作相关的类的说明3、创建Windows应用程序,实现如下功能:1)可以创建指定的文件和目录2)对指定的文件和目录可以进行删除和修改3)列举出指定目录下的内容4、创建Windows应用程序对指定的文本文件进行读写操作。
5、创建Windows应用程序对指定的二进制文件进行读写操作。
6、使用调试工具调试已创建的程序。
三、实验要求1、实验前根据实验内容复习相关章节,设计出程序框架。
2、编写相应的程序,写出完整的程序代码,包括注释,注意书写的层次结构。
网络编程实验指导书
《网络编程》课程实验指导书实验七 HTTP协议客户端编程实现1 实验目的与要求掌握浏览web网页的原理,深入理解HTTP原理以及HTML语言的功能,运用流式套接字下载web网页文件,分别用文本方式和浏览器方式打开下载的网页文件。
同时运用ChtmlView类编写浏览器软件。
运用ChtmlView 类开发浏览器程序,比较两者的异同.2、实验内容第一部分:编写并理解程序,利用流式套接字与web服务器建立TCP连接,然后向服务器发送Get命令,接收服务器的内容,把接收到的信息保存在一个文件中,然后打开该文件,观察文件的内容.第二部分: 运用ChtmlView 类开发浏览器程序3 实验原理模拟explorer部分功能,与web 服务器的80端口建立TCP连接,接下来向web服务器发送一Get命令,服务器会把应答信息和web网页的内容传输过来.4、实验步骤编写并调试程序,选择一个web服务器,寻找共IP地址,如:邵阳学院220.170.193.10搜狐119.97.155.2新浪59.175.132.113在程序中填入该web服务器的Ip地址,运行程序,打开接收的文本文件,观察文件的内容。
并在实验报告中填写下述内容。
接收文件的第一部分的应答信息内容是什么?接收文件的第二部分的内容是什么?用ChtmlView类开发浏览器程序有什么特点?主要仪器设备:安装有VC++6.0的PC机。
要求撰写实验报告,填写实验结果。
附录:第一部分的程序如下#pragma comment(lib,"ws2_32.lib")#include <stdio.h>#include <string.h>#include <winsock.h>void main(){WSADATA wsaData;SOCKET s;FILE *fp1;//文件指针SOCKADDR_IN saddr;int result;//整形变量,用于记录接收数据的字节数int port=80;//http服务器的默认端口WSAStartup(MAKEWORD(2,2),&wsaData);s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//创建TCP套接字saddr.sin_family=AF_INET;saddr.sin_port=htons(port);saddr.sin_addr.S_un.S_addr=inet_addr("220.170.193.10");//的IP地址connect(s,(SOCKADDR*) &saddr, sizeof(saddr));//请求与web 服务器建立TCP连接char sendbuff[400],strB[1025];//定义发送缓冲区和接收缓冲区strcpy(sendbuff,"GET /index.html HTTP/1.1\r\nHost:www.hnsyu.ne t\r\n\r\n");//字符串拷贝send(s,sendbuff,strlen(sendbuff),0);//传送http请求报文fp1=fopen("E:\pp1.html","w");//打开E:\pp.html,把接收报文保存在该文件中result = 1;//以下每次最多只接收1024字节,其中result为接收的字节数while(result>0){strset(strB,' ');result=recv(s,strB,1024,0);//接收http应答报文fwrite(strB,1,result,fp1);//把strB的数据写入fp所指的文件,以1个字节为单位,写入result个字节strB[result]='\0';//为显示在屏幕上,加字符串结束标记printf("%s",strB);//以字符串的形式显示的屏幕上} //实际接收的字节数大于0,继续接收fclose(fp1);//关闭文件closesocket(s);//关闭套接字WSACleanup();//关闭动态链接库}第二部分的操作如下1 建立工程SelfBrowser基于”单文档”, 工具栏样式为:”类似IE”,最后一步的CselfBrowserView基于ChtmlView类2打开资源视图(ResourceView),点击对话框资源(Dialog),再点击IDR_MAINFRAME选项卡,如图所示:剪切“TODO:对话框布局”,在该位置添加一编辑框和命令按钮,把命令按钮的标题改为”浏览”,把编辑框的ID号改为”ID_EDIT_ADDRESS”,如图所示3 点击“建立类向导”出会现如下界面,选定”Select an existing class”后,点击”OK”,出现下面的界面选定CmainFrame类后,点击”select”再点击“确定”后,完成建立类向导的操作。
网络编程技术实验指导书
《网络编程技术》实验指导书董黎刚信息与电子工程学院浙江工商大学2013-4-28 14:41:00ContentContent (1)课内实验1. Linux平台简单套接字编程 (2)课内实验2. Windows平台简单套接字编程 (4)课内实验3. html网页编程 (5)课内实验4. 客户端Web编程 (6)课内实验5. WinInet编程 (7)课内实验6. 并发套接字编程 (8)课外实验1. MFC编程 (9)课外实验2. MFC WinSock类的编程 (10)课外实验3.服务器端Web编程 (11)课外实验4. HTTP协议应用编程 (12)课外实验5. 电子邮件协议应用编程 (13)课外实验6. 网络综合程序设计 (14)附录1. 程序评分标准 (15)附录2. Linux shell commands (16)附录3. 编程类实验报告参考格式 (18)课内实验1. Linux平台简单套接字编程实验类型:设计性一、实验环境操作系统:Linux编程工具及集成开发环境:gcc, vi或anjuta二、实验目的和要求实验目的:掌握Linux平台上简单的客户机端和服务器端的套接字编程。
实验要求:(1)在Linux上,编写、编译1个客户机端程序和1个服务器端程序。
要求客户机端程序能发送请求给服务器端程序,服务器端程序收到后能发送本机时间给客户机端程序。
(2)在相同或不同机子上,先运行服务器端程序可执行文件,后运行客户机端程序可执行文件。
可选内容:(1)编写聊天程序,即客户机端程序和服务器端程序之间都能够多次发送消息给对方,也能够多次接收对方发送的消息。
(2)编写TCP和UDP两种程序。
三、实验提示(1)从/dlg/HomeTeaching_files/download/source_code/socket/v3.linux.dist.tar.Z可以下载可供参考的程序。
解压采用“zcat v3.linux.dist.tar.Z | tar xvf –”。
网络编程技术(java)实验指导书
《网络编程技术》实验指导书一、实验目的网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。
本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。
本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。
通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。
通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。
二、实验要求要求学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。
要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。
为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。
学生应记录实验中所遇到的问题,并写出详细的实验报告。
课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序、实验结果及分析。
三、实验设备及环境PC机一台,软件Windows 2000或Windows XP+JDK编译器。
四、实验学时分配五、实验内容实验一:Java 基本语法实验二:面向对象编程实验三:异常处理程序设计实验四:多线程程序设计实验五:系统I/O程序设计实验六:URL网络程序设计实验七:使用TCP协议的Socket网络程序设计实验八:使用UDP协议的Socket网络程序设计实验九:Applet应用程序设计实验十:JDBC程序设计Java 运行环境的安装、配置与运行1、SDK 的下载与安装1)机器要求硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。
计算机网络编程实验
计算机网络实验内容实验一:网络点对点聊天(20分)网络点对点聊天基于P2P(Peer to Peer,端对端)的网络连接,不需要服务器。
主要实现双方的基于socket的网络字符串通信,使用TCP或UDP协议均可。
实验二:网络点对点文件传输(30分)网络点对点文件传输基于P2P(Peer to Peer,端对端)的网络连接,不需要服务器。
主要实现双方的基于socket的网络文件双向传送,使用TCP协议。
实验三:网络资源发布与搜索(50分)网络资源发布与搜索基于P2P(Peer to Peer,端对端)的网络连接,不需要中心服务器。
主要实现:1、自动感知所有目前联网客户端的存在;2、从任一联网客户端将用户的网络信息资源(数据文件、音频文件、图片文件等任意类型)以广播方式通知其他当前所有已经联网的客户端;3、显示出当前其他客户端所发布的资源列表。
4、任一客户端可以从某一当前在线的客户端处下载其所共享的某项网络资源。
开发建议:1、自定义应用程序需要的所有通信协议。
2、一般处理规程提示:a)某一客户端上线后发送“上线广播”;b)已在线的客户端收到“上线广播”后,反馈一个应答信息给新上线的客户端,以告知自身的存在;c)客户端发送“共享资源查询请求”;d)已在线的客户端收到“共享资源查询请求”后,反馈一个应答信息(包含自身共享资源列表)给新上线的客户端;e)任一客户端当前共享资源发生变化,广播新的共享资源列表,以通知所有其他客户端进行数据更新;f)任一客户端周期性广播一个“心跳”包,以表明自己的存在;g)任一客户端在超过某一时间后如果未收到某一客户端的“心跳”包,则认为该客户端已断网。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《网络编程技术》实验指导书
2010版
(网络工程专业)
山东建筑大学计算机科学与技术学院
网络工程教研室袁卫华
实验一使用多线程技术下载网络资源数据文件(1)
一、实验目的
熟悉java运行环境,编程掌握Java输入输出流和Swing组件的用法。
二、实验环境
一般微机即可,软件MyEclipse,JDK1.5以上版本即可。
三、实验内容
1)搭建java运行环境
2)Java IO流的用法
3)Swing组件及事件处理
四、实验步骤
1.完成以下程序。
第一题:从键盘输入一首诗,把它写入到文本文件poem.txt中。
要求:(1)一次输入一行诗,输完后将其会现在屏幕上。
然后再输入下一句。
(2)最后将整首诗的内容从poem.txt中读取出来,显示在屏幕上。
(3)诗的内容:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
提示:
程序运行截图
◆键盘输入可使用System.in是一个原始的未经包装的InputStream。
◆本题中要求一次读入一行诗句,所以System.in流的输入需要经适配器
InputStreamReader必须对其进行包装,将其转换为字符流,然后使用缓冲式字符流BufferedReader对其进行包装,这样方可以使用BufferedReader 类的readLine()方法进行整行读取。
第二题:编写一个计算三角形面积的小程序,要求用户输入三角形的三边长,然后将计算出的三角形面积显示在JFrame窗口中。
提示:
◆程序运行效果图
①正常运行的情况
②如果用户输入非数值型数据
③如果用户输入的数据无法构成三角形
◆提示之关于界面设计
可以使用两个JPanel,一个JPanel放置上图第一行的swing组件,一个JPanel 放置上图第二行的组件。
如其中一个JPanle可以这样设计:
f=new JFrame("计算三角形面积");
//设置Frame的属性
……
p=new JPanel();
l=new JLabel("请输入三角形的三条边长:");
t1=new JTextField("0",5);
t2=new JTextField("0",5);
t3=new JTextField("0",5);
//将三个文本框都注册给焦点事件监听者
……
p.add(l);
p.add(t1);
p.add(t2);
p.add(t3);
f.add(p);
◆三角形的面积计算
Math.sqrt(q*(q-a)*(q-b)*(q-c)),q=a+b+c/2
在计算面积之前需要先判定用户的输入能否构成三角形
◆判定用户的输入数据格式是否合法可以使用焦点事件FocusEvent的监听
接口FocusListener
class HandleFocus implements FocusListener {// 内部类,焦点处理public void focusGained(FocusEvent e) {
}
public void focusLost(FocusEvent e) {
……
}
第三题:在本机上建立一个文件,将文本框中输入的下列类型的数据,如
int:100;float:3.1415925; double:3.1415926; long:1234567891; boolean:true; int:100;
String:"祖国,祖国,我爱你!"
String:“中国,中国,我的祖国!”
通过单击按钮“写原始数据类型到文件…”按钮写入到这个文本文件中。
然后通过单击按钮“从文件中读取原始数据类型“把这些数据读取出来,显示在JFrame 的文本区中。
要求:
能将界面正确的设计出来,能将用户从文本框输入的数据写入到文件中,并能从文件中再把输入读出显示在JFrame最下面的JTextArea中。
提示:
◆不需要对各个文本的数据格式做验证(假设用户每次都能输入合法的数据格
式)
◆文件的扩展名可以自己定义,文件的可能路径是这样的:DataOutputStream ds = new DataOutputStream(new FileOutputStream("src/chap02/io.rtr"));
也可以自己设定路径
◆本题着重是DataOutputStream,DataInputStream,FileInputStream和
FileOutputStream类的用法
◆程序的参考运行界面如下所示:
实验一使用多线程技术下载网络资源数据文件(2)
一、实验目的
熟悉java运行环境,编程掌握Java输入输出流和Swing组件的用法。
二、实验环境
一般微机即可,软件MyEclipse,JDK1.5以上版本即可。
三、实验内容
1)搭建java运行环境
2)Java IO流的用法
3)Swing组件及事件处理
四、实验步骤
1.完成以下程序。
第四题:编程实现一个人机交互版的猜数游戏
◆第一个线程givenNumberThread负责随机给出1-100之间的一个整数,
◆第二个线程guessNumberThread负责提取用户从键盘输入的所猜得的数字,
◆每当第二个线程给出自己的猜测后,
◆第一个线程会提示“猜大了”,“猜小了”,“猜对了”。
提示:
(1)程序运行截图
(2)相关提示
仿照上课所讲的例题GuessNumberGame.java和GuessNumberGame1.java,在程序中合理使用wait(),notify()或notifyAll()等方法,使各个线程能够合理的交替运行,直到用户猜对了为止。
第五题:编程实现一个带滚动字幕和时钟显示的小字典,
1)用户在左侧文本框中输入英文单词并按下enter键时,另一个文本框显示其汉语介绍;字
典中能够翻译的单词如下{boy,girl,man,woman},对应的中文翻译为{男孩,女孩,男人,女人};
2)当用户在左侧文本框中输入“fast”后,能够加速滚动字幕的显示;输入“stop”后,
滚动字幕停止;输入“restart”后,滚动字幕重新开始滚动;
3)当用户在左侧文本框中输入“start clock”后,开始显示系统时钟;当用户输入“stop clock”
后,时钟终止显示。
4)用户在左侧文本框中输入其他英文单词时,另一个文本框提示说“没有对应的中文”。
提示:
(1)程序运行截图
初始界面,“欢迎使用本系统”正在滚动中……
在文本框中输入start clock后,启动显示时钟线程。
在文本框中输入boy后,右侧文本框中显示其对应中文。
输入其他单词看,右侧文本框中显示“没有这个单词的英文翻译!”
(2)编程提示
可以参照例题ScrollWordsAndTimer.java,看看这两个程序的控制有什么不同的地方。
第六题:编程
在文本框中输入主机名,在下面的文本区中显示其IP地址信息;如果输入
IP地址,则显示其主机名。
要求:如果在文本框中输入的是主机名,要求查询出其对应得所有IP地址。
JFrame采用如下类似的设计形式:
1)输入主机名返回其对应的所有IP地址
2)输入IP地址返回其对应的主机名
提示:可以参照上课用的例题HostLookup.java。
第七题:对于山东建筑大学主页,实现以下程序:
编程:利用多线程显示此主页资源;在程序中实现山东建筑大学主页的显示和超链接的运行。
运行效果如下图所示:
网络编程技术实验指导书
11
实验报告一书写要求:
实验名称:使用多线程技术下载网络资源数据文件
一、 实验目的
熟悉java 运行环境,编程掌握Java 输入输出流和Swing 组件的用法。
二、 实验环境
一般微机即可,软件MyEclipse ,JDK1.5以上版本即可。
三、 实验内容
1)搭建java 运行环境
2)Java IO 流的用法
3)Swing 组件及事件处理
四、 实验步骤
这里描述一下你所完成的7个程序,并绘制第二题和第五题的程序流程图。
五、回答问题
字节流和字符流的区别是什么?如何进行转换?
URL 访问网络资源的基本步骤是什么?
简述线程的两种创建方式。
简述InetAddress 类的主要功能。