利用Java语言实现数据报编程之单播(二)

2014-11-23 19:47:29 · 作者: · 浏览: 21
l = new ArrayList();
  String path = "E:\nature\";
  File f = new File(path);
  file = f.list();
  DatagramRecvSender_s dgrs = new DatagramRecvSender_s("");
  for(int j=0;j<1000;j++)
   for (int i = 0; i < file.length; i++) {
    try {
     Thread.sleep(2000);
    }
    catch (InterruptedException ex) {
    }
    if (file[i].endsWith("jpg") || file[i].endsWith("bmp"))
     dgrs.sendFile(path + file[i]);
   }
  }
 }

  下面看接收端的界面.

package recmail.multiservice;

import java.awt.BorderLayout;

public class testDual
extends DualWindow implements DataSwapListener {
 JImagePanel ip;
 java.awt.Image bi;

 public testDual() {}

 public void init() {
  super.init();
  ImageShow is = new ImageShow();
  is.addDataSwapListener(this);
  Thread thread = new Thread(is, "test");
  thread.start();
 }

 public static void main(String[] args) {
  testDual test = new testDual();
  test.initmain();
  test.go();
  DatagramRecvSender_s dgrs = new DatagramRecvSender_s();
  dgrs.addDataSwapListener(test);
  Thread thread = new Thread(dgrs, "test");
  thread.start();
 }

 public void initmain() {
  super.initmain();
  ip = new JImagePanel();
  root.setLayout(new BorderLayout(5, 5));
  root.add(ip, BorderLayout.CENTER);
 }

 public void OnDataSendFinished(Object s, DataSwapEvent e) {}

 public void OnDataRecvFinished(Object s, DataSwapEvent e) {
  this.bi = e.getImage();
  ip.setImage(bi);
  System.out.println("recv Finished!");
 }
}

  testDual扩展的DualWindow类清单:

package recmail.multiservice;

import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JApplet;

public class DualWindow
extends JApplet {
 protected JPanel root;
 private JFrame frame;
 public DualWindow() {}

 public void init() {
  root = new JPanel();
  this.setContentPane(root);
 }

 public void initmain() {
  root = new JPanel();
 }

 public static void main(String[] args) {
  testDual test = new testDual();
  test.initmain();
  test.start();
  test.go();
 }

 public void go() {
  frame = new JFrame();
  frame.setContentPane(root);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setSize(300, 200);
  frame.validate();
  frame.setVisible(true);
 }
}