實驗五 基於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、撰寫實驗報告

實驗報告包含:實驗報告首頁、實驗步驟(每步的內容,有程序的要求有源碼和運行結果及結果描述)、實驗心得。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章