最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

《计算机网络实验》实验报告-软件实验6 - 副本

来源:动视网 责编:小OO 时间:2025-10-03 10:01:08
文档

《计算机网络实验》实验报告-软件实验6 - 副本

浙江大学城市学院实验报告课程名称计算机网络实验实验项目名称实验六传输层网络编程学生姓名专业班级学号实验成绩指导老师(签名)日期一.实验目的和要求1.通过实现使用JavaSocket进行通信的UDP客户端和服务器来获得关于使用JavaSocket网络编程的经验;2.通过实现使用JavaSocket进行通信的TCP客户端和服务器来获得关于使用JavaSocket网络编程的经验。二.实验内容、原理及实验结果与分析1.UDP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章Socke
推荐度:
导读浙江大学城市学院实验报告课程名称计算机网络实验实验项目名称实验六传输层网络编程学生姓名专业班级学号实验成绩指导老师(签名)日期一.实验目的和要求1.通过实现使用JavaSocket进行通信的UDP客户端和服务器来获得关于使用JavaSocket网络编程的经验;2.通过实现使用JavaSocket进行通信的TCP客户端和服务器来获得关于使用JavaSocket网络编程的经验。二.实验内容、原理及实验结果与分析1.UDP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章Socke
浙江大学城市学院实验报告

课程名称              计算机网络实验             

实验项目名称       实验六  传输层网络编程          

学生姓名            专业班级     学号               

实验成绩          指导老师(签名 )               日期              

一. 实验目的和要求

1.通过实现使用Java Socket进行通信的UDP客户端和服务器来获得关于使用Java Socket网络编程的经验;

2.通过实现使用Java Socket进行通信的TCP客户端和服务器来获得关于使用Java Socket网络编程的经验。

二. 实验内容、原理及实验结果与分析

1.UDP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章 Socket编程”)

1.1阅读 “网络编程参考资料-传输层.pdf”中 11.2部分,输入11.2.4部分“最简单的UDP程序”的源代码(UdpSend.java和UdpRecv.java)并在机器上编译运行通过(注意:要根据自己的机器IP地址修改源代码)。

【程序源代码】

发送:

import java.net.*;

public class Hf {

    public  static void main(String []args)throws Exception

    {

        DatagramSocket ds=new DatagramSocket();

        String str="Hello world";

        DatagramPacket dp=new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("10.66.21.139"),3000);

        ds.send(dp);

        ds.close();

        

    }

}

接收:

import java.net.*;

public class Hf1 {

    /**

     * @param args

     */

    public static void main(String[] args)throws Exception {

        // TODO 自动生成方法存根

        DatagramSocket  ds=new DatagramSocket(3000);

        byte [] buf=new byte[1024];

        DatagramPacket dp=new DatagramPacket(buf,1024);

        ds.receive(dp);

                  String strRecv=new String (dp.getData(),0,dp.getLength())+"from"+

                  dp.getAddress().getHostAddress()+":"+dp.getPort();

                    System.out.print(strRecv);

                    ds.close();

                  

    }

}

【实验结果与分析】

2.TCP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章 Socket编程”)

2.1阅读 “网络编程参考资料-传输层.pdf”中 11.3 部分,输入11.3.3部分“简单的TCP服务器程序”的源代码(TcpServer.java)并在机器上编译运行,然后通过在命令行中输入“telnet 自己的IP地址 8001”进行测试。

【程序源代码】

import java.net.*;

import java.io.*;

public class h1 {

    public static void main(String[] args) {

        // TODO 自动生成方法存根

        try

        {

            ServerSocket ss=new ServerSocket(8001);

            Socket s=ss.accept();

            InputStream ips=s.getInputStream();

            OutputStream ops=s.getOutputStream();

            ops.write("welcome to www. 洪锋..com".getBytes());

            byte [] buf=new byte[1024];

            int len = ips.read(buf);

            System.out .println(new String(buf,0,len));

            ips.close();

            ops.close();

            s.close();

            ss.close();}

        catch(Exception e){e.printStackTrace();}

    }

}

【实验结果与分析】

2.2阅读 “网络编程参考资料-传输层.pdf”中 11.3 部分,输入11.3.4 部分“TCP服务器程序”(Tcp_Server.java)以及11.3.5客户端程序的源代码(Tcp_Client.java)并在机器上编译运行,客户端测试命令为“java Tcp_Client 自己的IP地址 8001”。

【程序源代码】

TCP:

import java.net.*;

import java.io.*;

class Servicer implements h2{

    Socket s;

    public Servicer(Socket s){

        this.s = s;

    }

    public void run(){

        try{

            InputStream ips = s.getInputStream();

            OutputStream ops = s.getOutputStream();

            

            BufferedReader br = new BufferedReader(new InputStreamReader(ips));

            DataOutputStream dos = new DataOutputStream(ops);

            while(true){

                String strWord = br.readLine();

                //System.out.println(strWord + ":" + strWord.length());

                if(strWord.equalsIgnoreCase("quit"))

                    break;

                String strEcho = (new StringBuffer(strWord).reverse()).toString();

             //dos.writeBytes(strWord + "---->" + strEcho + "\\r\\n");

             dos.writeBytes(strWord + "---->" + strEcho + System.getProperty("line.separator"));

            }

            br.close();

            dos.close();

            s.close();

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

Public class h1{

    public static void main(String [] args)

    {

        try

        {

            ServerSocket ss=new ServerSocket(8001);

            while(true)

            {

                Socket s=ss.accept();

                new Thread(new Servicer(s)).start();

            }

            //ss.close();

        }catch(Exception e){e.printStackTrace();}

    }

}

客户端:

import java.net.*;

import java.io.*;

public class h3 

{

    public static void main(String[] args) 

    {

        try

        {

            //Socket s=new Socket(InetAddress.getByName("10.66.21.138"),8001);

         if(args.length<2)

            {

                System.out.println("Usage:java TcpClient ServerIP ServerPort");

                return;

            }

            Socket s=new Socket(InetAddress.getByName(args[0]),Integer.parseInt(args[1]));

            InputStream ips=s.getInputStream();

            OutputStream ops=s.getOutputStream();

            BufferedReader brKey = new BufferedReader(new InputStreamReader(System.in));

            DataOutputStream dos = new DataOutputStream(ops);

            BufferedReader brNet = new BufferedReader(new InputStreamReader(ips));

            while(true)

            {

                String strWord = brKey.readLine();

                dos.writeBytes(strWord + System.getProperty("line.separator"));

                if(strWord.equalsIgnoreCase("quit"))

                    break;

                else

                    System.out.println(brNet.readLine());

            }

            dos.close();

            brNet.close();

            brKey.close();

            s.close();

        }catch(Exception e){e.printStackTrace();}

    }

}

【实验结果与分析】

3.Ethereal抓包分析

用Ethereal软件截获上面三个程序运行时客户机和服务器之间发送的数据包,并且根据截获的数据包内容进行分析。

【实验结果与分析】

三. 讨论、心得

记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。

文档

《计算机网络实验》实验报告-软件实验6 - 副本

浙江大学城市学院实验报告课程名称计算机网络实验实验项目名称实验六传输层网络编程学生姓名专业班级学号实验成绩指导老师(签名)日期一.实验目的和要求1.通过实现使用JavaSocket进行通信的UDP客户端和服务器来获得关于使用JavaSocket网络编程的经验;2.通过实现使用JavaSocket进行通信的TCP客户端和服务器来获得关于使用JavaSocket网络编程的经验。二.实验内容、原理及实验结果与分析1.UDP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章Socke
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top