计算机网络实验2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

}

}

}

相关文档
最新文档