📄 sender.java
字号:
package datagram;import javax.microedition.midlet.*;import javax.microedition.io.*;import javax.microedition.lcdui.*;import java.io.*;public class Sender extends Thread { private UDPDatagramConnection dc; private String address; // 存放目的地址 private String message; // 存放数据报中的数据 public Sender(UDPDatagramConnection dc) { this.dc = dc; // 用于发送的数据报连接 start(); // 启动发送线程 } // 同步方法,接收需发送的目的地址和数据 public synchronized void send(String addr, String msg) { address = addr; // 接收数据报的目的地址 message = msg; // 接收数据报中的数据 notify(); // 唤醒线程 } public synchronized void run() { // 同步方法run while (true) { // 当没有数据发送时,进入等待状态 if (message == null) { try { wait(); } catch (InterruptedException e) { } } if (message == null) break; try { byte[] bytes = message.getBytes(); Datagram dg = null; // 当目的地址为空时,是客户端在发送数据;否则是服务器发送数据 if (address == null) { dg = dc.newDatagram(bytes, bytes.length); // 新建数据报 } else { dg = dc.newDatagram(bytes, bytes.length, address); // 新建数据报 } dc.send(dg); // 发送数据报 } catch (Exception ioe) { System.out.println("错误:"+ioe.getMessage()); } // 操作完成,将发送的数据设为空,进入等待状态 message = null; } } public synchronized void stop() { // 同步方法,用于停止线程 message = null; // 将需发送的数据设为空 notify(); // 唤醒线程 }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -