|
package com.siemens.datagramtest;
import javax.microedition.io.Datagram; import javax.microedition.io.DatagramConnection;
public class Sender extends Thread {
private DatagramConnection dc;
private String address;
private String message;
public Sender(DatagramConnection dc) { this.dc = dc; start(); }
public synchronized void send(String addr, String msg) { address = addr; message = msg; notify(); }
public synchronized void run() {
while (true) {
// If no client to deal, wait until one connects if (message == null) { try { wait(); } catch (InterruptedException e) { } }
try { byte[] bytes = message.getBytes(); Datagram dg = null; // Are we a sender thread for the client ? If so then there's // no address parameter if (address == null) { dg = dc.newDatagram(bytes, bytes.length); } else { dg = dc.newDatagram(bytes, bytes.length, address); System.out.println(address); } dc.send(dg); } catch (Exception ioe) { ioe.printStackTrace(); }
// Completed client handling, return handler to pool and // mark for wait message = null; } }
} |