计算机网络实验2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络课程实验二
实验目的:让学生通过实验,对网络原理有更深刻和更直观的认识;掌握网络基本技术,例如:组网、截获/分析数据包、网络编程等;为以后更深入的学习和利用计算机网络打下一个好的基础;
实验环境:与因特网连接的计算机网络系统;主机操作系统为windows;Ethereal、IE等软件。
实验内容:
一、查看课程配套的2个JA V A Applet演示
演示1:DNS中的递归查询和迭代查询
递归查询:名字解析负担都放在当前联络的名字服务器上。根服务器的负担太重。
迭代查询:根(及各级域名)服务器返回的不是查询结果,而是下一个NS的地址,最后由权威名字服务器给出解析结果。
演示二:HTTP协议中的时延的估计
演示了HTTP协议下非持久连接(有无并行连接)和持久连接(是否是流水方式)的不同的
时延(每个对象传播时延为0.25RTT,共4个对象)。(a)非持久连接,无并行连接(总时延11.25RTT)
(b)非持久连接,有并行连接(2条)(总时延6.75RTT)
(c)持久连接,不是流水方式(总时延7.25RTT)
(d)持久连接,是流水方式(总时延3.5RTT)
二、Socket编程
1.安装JDK
2.初步学习使用JDK开发Java程序(一)
编译并运行HelloWorld.java程序,结果如下
3. 初步学习使用JDK开发Java程序(二)
编译并运行Hello.java程序,结果如下
4. Socket套接字应用演示
依照实验指导,操作如下
结果如下图
试用该图形界面应用,结果如下
5. 参照前面几个实验获得的Java编程经验,利用课本P106的TCPClient.java 与P108 的TCPServer.java 程序段,自行编写一对基于TCP协议的网络应用程序。
TCPClient.java
Import java.io.*;
Import .*;
class TCPClient{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BuffeeredReader inFromUser=new BufferedReader(
New InputStreamReader(System.in));
Socket clientSocket=new Socket(“host name”,6789);
DataOutputStream outToServer=new DataOutputStream(
clientSocket.getInputStream());
BufferedReader inFromServer=
new BufferedReader(new InputStreamReader(
clientSocket.gerInputStream()));
sentence=inFromUser.readLine();
outToServer.writeBytes(sentence+’\n’);
modifiedSentence=inFromServer.readLine();
System.out.println(“FROM SERVER:”+
modifiedSentence);
clientSocket.close();
}
}
TCPServer.java
Import java.io.*;
Import .*;
class TCPServer{
public static void main(String argv[]) throws Exception {
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket=new ServerSocket (6789);
while(true){
Socket connectionSocket=welcomeSocket.
accept();
BufferedReader inFromClient=
new BufferedReader(new InputStreamReader(
connectionSocket.getInputStream()));
DataOutputStream outToClient=
new DataOutputSteam(
connectionSocket.getOutputStream());
clientSentence=inFromClient.readLine();
capitalizedSentence=
clientSentence.toUpperCase()+’\n’;
outToClient.writeBytes(capitalizedSentence);
}
}
}