我正在尝试使用 UDP(数据报)发送数据。我无法在模拟器上测试应用程序。我尝试先运行 MDS,然后运行模拟器,但它不起作用。该错误显示为端口 8080 已在 BlackBerry 模拟器控制台上使用。如何更改模拟器中的端口?我连接的 UDP 端口是 localhost:5014
我正在为 BlackBerry Pearl 8100 使用模拟器。
我正在尝试使用 UDP(数据报)发送数据。我无法在模拟器上测试应用程序。我尝试先运行 MDS,然后运行模拟器,但它不起作用。该错误显示为端口 8080 已在 BlackBerry 模拟器控制台上使用。如何更改模拟器中的端口?我连接的 UDP 端口是 localhost:5014
我正在为 BlackBerry Pearl 8100 使用模拟器。
在Blackberry 论坛上有关于 4.5.0.x 到 4.5.0.83 的数据报问题的评论。难怪 sdk 中没有 UDP 样本。您始终可以从http://na.blackberry.com/eng/developers/下载带有 4.5.0.108 模拟器的 8100
另一件事是使用 ip,虽然 api 引用中允许使用主机名,但是当您使用 MDS 模拟器时,它会获取 localhost 别名。
在下面的代码中,您有一个简单的服务器正在侦听端口 135,而 bb 客户端正在将数据包发送到端口 135 上的 127.0.0.1。
桌面服务器代码:
public static void main(String[] args) {
byte[] inBuff = new byte[32];
DatagramSocket socket;
try {
socket = new DatagramSocket(137);
DatagramPacket pckt = new DatagramPacket(inBuff, inBuff.length);
while (true) {
socket.receive(pckt);
System.out.println(new Date() + " " + pckt.getAddress()
+ ":" + pckt.getPort());
socket.send(pckt);
}
} catch (Exception e) {
System.out.println(e.getMessage()+":");
System.out.println(e.getClass().getName());
}
}
黑莓客户端代码(在 4.6.1 下使用 Bold 8900 测试):
UDPDatagramConnection connection = null;
byte[] outBuff = "Hello!".getBytes();
Datagram outDatagram = null;
try {
connection = (UDPDatagramConnection) Connector
.open("datagram://127.0.0.1:137");
outDatagram = connection.newDatagram(outBuff, outBuff.length);
connection.send(outDatagram);
System.out.println("Datagram packet was sent");
} catch (Exception e) {
System.out.println(e.getMessage()+":");
System.out.println(e.getClass().getName());
}