WEB开发网
开发学院软件开发Java Datagram数据报的接收和发送 阅读

Datagram数据报的接收和发送

 2007-12-23 12:29:13 来源:WEB开发网   
核心提示:Datagram Receiver import java.io.IOException;import javax.microedition.io.Connector;import javax.microedition.io.Datagram;import javax.microedition.io.DatagramC

Datagram Receiver

import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.Datagram;
import javax.microedition.io.DatagramConnection;

public class DatagramReceiver {
  public static void main(String[] args) {
    if (args.length != 1) {
      System.out.PRintln("Usage: DatagramReceiver port");
      System.exit(1);
    }
    
    try {
      DatagramConnection receiver = 
          (DatagramConnection)Connector.open("datagram://:" + args[0]);
      byte[] buffer = new byte[256];
      Datagram dgram = receiver.newDatagram(buffer, buffer.length);
      for (;;) {
        dgram.setLength(buffer.length);
        receiver.receive(dgram);
        int length = dgram.getLength();
        System.out.println("Datagram received. Length is " + length);

        // Show the content of the datagram.
        for (int i = 0; i < length; i++) {
          System.out.print(buffer[i] + " ");
        }
        System.out.println();
        
        // Send it back...
        receiver.send(dgram);
      }
    } catch (IOException ex) {
      System.out.println("IOException: " + ex);
    }
  }
}
DatagramSender
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.Datagram;
import javax.microedition.io.DatagramConnection;

public class DatagramSender {
  public static void main(String[] args) {
    if (args.length != 2) {
      System.out.println("Usage: DatagramSender port length");
      System.exit(1);
    }
    
    try {
      DatagramConnection sender = 
          (DatagramConnection)Connector.open("datagram://localhost:" + args[0]);
      int length = Integer.parseInt(args[1]);
      byte[] buffer = new byte[length];
      for (int i = 0; i < length; i++) {
        buffer[i] = (byte)('0' + (i % 10));
      }
      Datagram dgram = sender.newDatagram(buffer, buffer.length);
      sender.send(dgram);
      
      // Wait for the packet to be returned
      for (int i = 0; i < length; i++) {
        buffer[i] = (byte)0;
      }
      sender.receive(dgram);
      length = dgram.getLength();
      System.out.println("Received return packet, length is " + length);
      
      // Show the content of the datagram.
      for (int i = 0; i < length; i++) {
        System.out.print(buffer[i] + " ");
      }
      System.out.println();
    } catch (IOException ex) {
      System.out.println("IOException: " + ex);
    }
  }
}


(出处:http://www.cncms.com)


Tags:Datagram 数据 接收

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接