На форуме Blackberry есть комментарии о проблемах с датаграммой под 4.5.0.x до 4.5.0.83. Неудивительно, что в SDK нет образцов UDP.
Вы всегда можете скачать 8100 с симулятором 4.5.0.108 из http://na.blackberry.com/eng/developers/
Другое дело - использовать ip, хотя имя хоста разрешено в ссылках API, но при использовании симулятора MDS захватывает псевдоним localhost .
В следующем коде у вас есть простой сервер, который прослушивает порт 135, и клиент bb, который отправляет пакет данных на 127.0.0.1 через порт 135.
Код настольного сервера:
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());
}
}
Код клиента BlackBerry (протестирован с Bold 8900 в 4.6.1):
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());
}