实验五 基于UDP编程实验

实验五 基于UDP编程

实验目的:

1、理解UDP及基于数据报通信的基本原理;

2、学会基于UDP编程的代码编写及理解各语句内容;

3、掌握基于UDP编程的具体应用。

实验要求:

1、建立两个独立的基于UDP编程的JAVA工程,用于服务器和客户端系统;

2、建立UDPJAVA类,并能正确运行且能实现数据报通信;

3、对JAVA类的功能进行拓广,使基于UDP编程用于某一具体的应用。

实验内容:

1、建立服务器端工程和JAVA类,类程序的原代码为:

import java.io.*;

import java.net.*;

public class UDPServerTest {

  static public void main(String args[]) {

    try {

      DatagramSocket receiveSocket = new DatagramSocket(3245);

      byte buf[] = new byte[1000];

      DatagramPacket receivePacket = new DatagramPacket(buf, buf.length);

      System.out.println("开始接受数据:");

      while (true) {

        receiveSocket.receive(receivePacket);

        String name = receivePacket.getAddress().toString();

        System.out.println("/n来自主机:" + name + "/n端口:"

                           + receivePacket.getPort());

        String s = new String(receivePacket.getData(), 0,

                              receivePacket.getLength());

        System.out.println("接受到的数据是: " + s);

      }

    }

    catch (SocketException e) {

      e.printStackTrace();

      System.exit(1);

    }

    catch (IOException e) {

      System.out.println("网络通讯出现错误,问题在" + e.toString());

    }

  }

}

2、建立客户端工程和JAVA类,类程序的原代码为:

import java.io.*;

import java.net.*;

 

public class UDPClientTest {

  public static void main(String args[]) {

    try {

      DatagramSocket sendSocket = new DatagramSocket(3456);

      String string = "iopiopiopiopiopiopiopipio";

      byte[] databyte = new byte[100];

      databyte = string.getBytes();

      DatagramPacket sendPacket = new DatagramPacket(databyte, string.length(),

          InetAddress.getByName("10.189.0.88"), 3245);

      sendSocket.send(sendPacket);

      System.out.println("客户端开始传送数据!");

    }

    catch (SocketException e) {

      System.out.println("不能打开数据报Socket,或数据报Socket无法与指定端口连接!");

    }

    catch (IOException ioe) {

      System.out.println(ioe.toString());

    }

  }

}

3、调试使以上两个工程能正常运行,使服务端和客户端能正常通信。

4、对服务器端和客户端的程序代码进行阅读和理解,要求做到每条语句都能明白其具体含义,每个类都了解其功能。

5、对以上程序进行适当的修改,要求数据报通信功能保持实现。

(注:修改的方向有:图形化界面、多台电脑通信、结合线程编程等。)

6、撰写实验报告

实验报告包含:实验报告首页、实验步骤(每步的内容,有程序的要求有源码和运行结果及结果描述)、实验心得。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值