<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FNetwork_Protocol%2FDatagramPacket</id>
		<title>Java/Network Protocol/DatagramPacket - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FNetwork_Protocol%2FDatagramPacket"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Network_Protocol/DatagramPacket&amp;action=history"/>
		<updated>2026-04-21T20:36:52Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Network_Protocol/DatagramPacket&amp;diff=8887&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Network_Protocol/DatagramPacket&amp;diff=8887&amp;oldid=prev"/>
				<updated>2010-06-01T07:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 07:20, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Network_Protocol/DatagramPacket&amp;diff=8886&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Network_Protocol/DatagramPacket&amp;diff=8886&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Create DatagramPacket from byte array ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
class Main {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    InetAddress ia = InetAddress.getByName(args[0]);&lt;br /&gt;
    int port = Integer.parseInt(args[1]);&lt;br /&gt;
    DatagramSocket ds = new DatagramSocket();&lt;br /&gt;
    while (true) {&lt;br /&gt;
      String s = &amp;quot;asdf&amp;quot;;&lt;br /&gt;
      byte buffer[] = s.getBytes();&lt;br /&gt;
      DatagramPacket dp = new DatagramPacket(buffer, buffer.length, ia, port);&lt;br /&gt;
      ds.send(dp);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get address and port from DatagramPacket ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
class Main {&lt;br /&gt;
  private final static int BUFSIZE = 20;&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    int port = Integer.parseInt(args[0]);&lt;br /&gt;
    DatagramSocket ds = new DatagramSocket(port);&lt;br /&gt;
    byte buffer[] = new byte[BUFSIZE];&lt;br /&gt;
    while (true) {&lt;br /&gt;
      DatagramPacket dp = new DatagramPacket(buffer, buffer.length);&lt;br /&gt;
      ds.receive(dp);&lt;br /&gt;
      InetAddress ia = dp.getAddress();&lt;br /&gt;
      System.out.println(ia);&lt;br /&gt;
      System.out.println(dp.getPort());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get data from DatagramPacket ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
class DatagramReceiver {&lt;br /&gt;
  private final static int BUFSIZE = 20;&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    int port = Integer.parseInt(args[0]);&lt;br /&gt;
    DatagramSocket ds = new DatagramSocket(port);&lt;br /&gt;
    byte buffer[] = new byte[BUFSIZE];&lt;br /&gt;
    while (true) {&lt;br /&gt;
      DatagramPacket dp = new DatagramPacket(buffer, buffer.length);&lt;br /&gt;
      ds.receive(dp);&lt;br /&gt;
      System.out.println(new String(dp.getData()));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sends the specified text or file as a datagram to the specified port of the specified host ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 2004 David Flanagan.  All rights reserved.&lt;br /&gt;
 * This code is from the book Java Examples in a Nutshell, 3nd Edition.&lt;br /&gt;
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.&lt;br /&gt;
 * You may study, use, and modify it for any non-commercial purpose,&lt;br /&gt;
 * including teaching and use in open-source projects.&lt;br /&gt;
 * You may distribute it non-commercially as long as you retain this notice.&lt;br /&gt;
 * For a commercial use license, or to purchase the book, &lt;br /&gt;
 * please visit http://www.davidflanagan.ru/javaexamples3.&lt;br /&gt;
 */&lt;br /&gt;
//package je3.net;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
/**&lt;br /&gt;
 * This class sends the specified text or file as a datagram to the specified&lt;br /&gt;
 * port of the specified host.&lt;br /&gt;
 */&lt;br /&gt;
public class UDPSend {&lt;br /&gt;
  public static final String usage = &amp;quot;Usage: java UDPSend &amp;lt;hostname&amp;gt; &amp;lt;port&amp;gt; &amp;lt;msg&amp;gt;...\n&amp;quot;&lt;br /&gt;
      + &amp;quot;   or: java UDPSend &amp;lt;hostname&amp;gt; &amp;lt;port&amp;gt; -f &amp;lt;file&amp;gt;&amp;quot;;&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    try {&lt;br /&gt;
      // Check the number of arguments&lt;br /&gt;
      if (args.length &amp;lt; 3)&lt;br /&gt;
        throw new IllegalArgumentException(&amp;quot;Wrong number of args&amp;quot;);&lt;br /&gt;
      // Parse the arguments&lt;br /&gt;
      String host = args[0];&lt;br /&gt;
      int port = Integer.parseInt(args[1]);&lt;br /&gt;
      // Figure out the message to send.&lt;br /&gt;
      // If the third argument is -f, then send the contents of the file&lt;br /&gt;
      // specified as the fourth argument. Otherwise, concatenate the&lt;br /&gt;
      // third and all remaining arguments and send that.&lt;br /&gt;
      byte[] message;&lt;br /&gt;
      if (args[2].equals(&amp;quot;-f&amp;quot;)) {&lt;br /&gt;
        File f = new File(args[3]);&lt;br /&gt;
        int len = (int) f.length(); // figure out how big the file is&lt;br /&gt;
        message = new byte[len]; // create a buffer big enough&lt;br /&gt;
        FileInputStream in = new FileInputStream(f);&lt;br /&gt;
        int bytes_read = 0, n;&lt;br /&gt;
        do { // loop until we&amp;quot;ve read it all&lt;br /&gt;
          n = in.read(message, bytes_read, len - bytes_read);&lt;br /&gt;
          bytes_read += n;&lt;br /&gt;
        } while ((bytes_read &amp;lt; len) &amp;amp;&amp;amp; (n != -1));&lt;br /&gt;
      } else { // Otherwise, just combine all the remaining arguments.&lt;br /&gt;
        String msg = args[2];&lt;br /&gt;
        for (int i = 3; i &amp;lt; args.length; i++)&lt;br /&gt;
          msg += &amp;quot; &amp;quot; + args[i];&lt;br /&gt;
        // Convert the message to bytes using UTF-8 encoding&lt;br /&gt;
        message = msg.getBytes(&amp;quot;UTF-8&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      // Get the internet address of the specified host&lt;br /&gt;
      InetAddress address = InetAddress.getByName(host);&lt;br /&gt;
      // Initialize a datagram packet with data and address&lt;br /&gt;
      DatagramPacket packet = new DatagramPacket(message, message.length, address, port);&lt;br /&gt;
      // Create a datagram socket, send the packet through it, close it.&lt;br /&gt;
      DatagramSocket dsocket = new DatagramSocket();&lt;br /&gt;
      dsocket.send(packet);&lt;br /&gt;
      dsocket.close();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      System.err.println(e);&lt;br /&gt;
      System.err.println(usage);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waits to receive datagrams sent the specified port ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
/**&lt;br /&gt;
 * This program waits to receive datagrams sent the specified port. When it&lt;br /&gt;
 * receives one, it displays the sending host and prints the contents of the&lt;br /&gt;
 * datagram as a string. Then it loops and waits again.&lt;br /&gt;
 */&lt;br /&gt;
public class UDPReceive {&lt;br /&gt;
  public static final String usage = &amp;quot;Usage: java UDPReceive &amp;lt;port&amp;gt;&amp;quot;;&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    try {&lt;br /&gt;
      if (args.length != 1)&lt;br /&gt;
        throw new IllegalArgumentException(&amp;quot;Wrong number of args&amp;quot;);&lt;br /&gt;
      // Get the port from the command line&lt;br /&gt;
      int port = Integer.parseInt(args[0]);&lt;br /&gt;
      // Create a socket to listen on the port.&lt;br /&gt;
      DatagramSocket dsocket = new DatagramSocket(port);&lt;br /&gt;
      // Create a buffer to read datagrams into. If anyone sends us a&lt;br /&gt;
      // packet containing more than will fit into this buffer, the&lt;br /&gt;
      // excess will simply be discarded!&lt;br /&gt;
      byte[] buffer = new byte[2048];&lt;br /&gt;
      // Create a packet to receive data into the buffer&lt;br /&gt;
      DatagramPacket packet = new DatagramPacket(buffer, buffer.length);&lt;br /&gt;
      // Now loop forever, waiting to receive packets and printing them.&lt;br /&gt;
      for (;;) {&lt;br /&gt;
        // Wait to receive a datagram&lt;br /&gt;
        dsocket.receive(packet);&lt;br /&gt;
        // Decode the bytes of the packet to characters, using the&lt;br /&gt;
        // UTF-8 encoding, and then display those characters.&lt;br /&gt;
        String msg = new String(buffer, 0, packet.getLength(), &amp;quot;UTF-8&amp;quot;);&lt;br /&gt;
        System.out.println(packet.getAddress().getHostName() + &amp;quot;: &amp;quot; + msg);&lt;br /&gt;
        // Reset the length of the packet before reusing it.&lt;br /&gt;
        // Prior to Java 1.1, we&amp;quot;d just create a new packet each time.&lt;br /&gt;
        packet.setLength(buffer.length);&lt;br /&gt;
      }&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      System.err.println(e);&lt;br /&gt;
      System.err.println(usage);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>