<?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_Tutorial%2FNetwork%2FUDP_Client</id>
		<title>Java Tutorial/Network/UDP Client - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FNetwork%2FUDP_Client"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Network/UDP_Client&amp;action=history"/>
		<updated>2026-04-21T22:51:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Network/UDP_Client&amp;diff=4610&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Network/UDP_Client&amp;diff=4610&amp;oldid=prev"/>
				<updated>2010-06-01T05:03:36Z</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;Версия 05:03, 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_Tutorial/Network/UDP_Client&amp;diff=4609&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Network/UDP_Client&amp;diff=4609&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</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;==  Read and write with 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;
import java.net.InetAddress;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    byte[] ary = new byte[128];&lt;br /&gt;
    DatagramPacket pack = new DatagramPacket(ary, 128);&lt;br /&gt;
    // read&lt;br /&gt;
    DatagramSocket sock = new DatagramSocket(1111);&lt;br /&gt;
    sock.receive(pack);&lt;br /&gt;
    String word = new String(pack.getData());&lt;br /&gt;
    System.out.println(&amp;quot;From: &amp;quot; + pack.getAddress() + &amp;quot; Port: &amp;quot; + pack.getPort());&lt;br /&gt;
    System.out.println(word);&lt;br /&gt;
    sock.close();&lt;br /&gt;
    // write&lt;br /&gt;
    sock = new DatagramSocket();&lt;br /&gt;
    pack.setAddress(InetAddress.getByName(args[1]));&lt;br /&gt;
    pack.setData(args[2].getBytes());&lt;br /&gt;
    pack.setPort(1111);&lt;br /&gt;
    sock.send(pack);&lt;br /&gt;
    sock.close();&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;
==  Receiving a Datagram ==&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;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    byte[] inbuf = new byte[256]; // default size&lt;br /&gt;
    DatagramSocket socket = new DatagramSocket();&lt;br /&gt;
    DatagramPacket packet = new DatagramPacket(inbuf, inbuf.length);&lt;br /&gt;
    socket.receive(packet);&lt;br /&gt;
    int numBytesReceived = packet.getLength();&lt;br /&gt;
    System.out.println(numBytesReceived);&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;
==  Send a Datagram ==&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.io.IOException;&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.SocketException;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
  }&lt;br /&gt;
  public static void senddatagram(InetAddress target, int port, byte[] outbuf, int len) {&lt;br /&gt;
    try {&lt;br /&gt;
      DatagramPacket request = new DatagramPacket(outbuf, len, target, port);&lt;br /&gt;
      DatagramSocket socket = new DatagramSocket();&lt;br /&gt;
      socket.send(request);&lt;br /&gt;
    } catch (SocketException e) {&lt;br /&gt;
    } catch (IOException e) {&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;
==  Sending a Datagram ==&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;
import java.net.InetAddress;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    InetAddress dst = InetAddress.getLocalHost();&lt;br /&gt;
    int port = 8080;&lt;br /&gt;
    byte[] outbuf = new byte[1024];&lt;br /&gt;
    int len = 1024;&lt;br /&gt;
    DatagramPacket request = new DatagramPacket(outbuf, len, dst, port);&lt;br /&gt;
    DatagramSocket socket = new DatagramSocket();&lt;br /&gt;
    socket.send(request);&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;
==  UDP Discard Client ==&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.io.BufferedReader;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    InetAddress server = InetAddress.getByName(&amp;quot;localhost&amp;quot;);&lt;br /&gt;
    BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));&lt;br /&gt;
    DatagramSocket theSocket = new DatagramSocket();&lt;br /&gt;
    while (true) {&lt;br /&gt;
      String theLine = userInput.readLine();&lt;br /&gt;
      if (theLine.equals(&amp;quot;.&amp;quot;))&lt;br /&gt;
        break;&lt;br /&gt;
      byte[] data = theLine.getBytes();&lt;br /&gt;
      DatagramPacket theOutput = new DatagramPacket(data, data.length, server, 99999);&lt;br /&gt;
      theSocket.send(theOutput);&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;
==  UDP Echo Client ==&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.io.BufferedReader;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.SocketException;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    String hostname = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
    InetAddress ia = InetAddress.getByName(hostname);&lt;br /&gt;
    SenderThread sender = new SenderThread(ia, 1919);&lt;br /&gt;
    sender.start();&lt;br /&gt;
    Thread receiver = new ReceiverThread(sender.getSocket());&lt;br /&gt;
    receiver.start();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class SenderThread extends Thread {&lt;br /&gt;
  private InetAddress server;&lt;br /&gt;
  private DatagramSocket socket;&lt;br /&gt;
  private boolean stopped = false;&lt;br /&gt;
  private int port;&lt;br /&gt;
  public SenderThread(InetAddress address, int port) throws SocketException {&lt;br /&gt;
    this.server = address;&lt;br /&gt;
    this.port = port;&lt;br /&gt;
    this.socket = new DatagramSocket();&lt;br /&gt;
    this.socket.connect(server, port);&lt;br /&gt;
  }&lt;br /&gt;
  public void halt() {&lt;br /&gt;
    this.stopped = true;&lt;br /&gt;
  }&lt;br /&gt;
  public DatagramSocket getSocket() {&lt;br /&gt;
    return this.socket;&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    try {&lt;br /&gt;
      BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));&lt;br /&gt;
      while (true) {&lt;br /&gt;
        if (stopped)&lt;br /&gt;
          return;&lt;br /&gt;
        String theLine = userInput.readLine();&lt;br /&gt;
        if (theLine.equals(&amp;quot;.&amp;quot;))&lt;br /&gt;
          break;&lt;br /&gt;
        byte[] data = theLine.getBytes();&lt;br /&gt;
        DatagramPacket output = new DatagramPacket(data, data.length, server, port);&lt;br /&gt;
        socket.send(output);&lt;br /&gt;
        Thread.yield();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    catch (IOException ex) {&lt;br /&gt;
      System.err.println(ex);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ReceiverThread extends Thread {&lt;br /&gt;
  DatagramSocket socket;&lt;br /&gt;
  private boolean stopped = false;&lt;br /&gt;
  public ReceiverThread(DatagramSocket ds) throws SocketException {&lt;br /&gt;
    this.socket = ds;&lt;br /&gt;
  }&lt;br /&gt;
  public void halt() {&lt;br /&gt;
    this.stopped = true;&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    byte[] buffer = new byte[65507];&lt;br /&gt;
    while (true) {&lt;br /&gt;
      if (stopped)&lt;br /&gt;
        return;&lt;br /&gt;
      DatagramPacket dp = new DatagramPacket(buffer, buffer.length);&lt;br /&gt;
      try {&lt;br /&gt;
        socket.receive(dp);&lt;br /&gt;
        String s = new String(dp.getData(), 0, dp.getLength());&lt;br /&gt;
        System.out.println(s);&lt;br /&gt;
        Thread.yield();&lt;br /&gt;
      } catch (IOException ex) {&lt;br /&gt;
        System.err.println(ex);&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;
==  UDP Time Client ==&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.DatagramSocket;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.ByteOrder;&lt;br /&gt;
import java.nio.channels.DatagramChannel;&lt;br /&gt;
public class UDPTimeClient {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    DatagramChannel channel = DatagramChannel.open();&lt;br /&gt;
    // port 0 selects any available port&lt;br /&gt;
    SocketAddress address = new InetSocketAddress(0);&lt;br /&gt;
    DatagramSocket socket = channel.socket();&lt;br /&gt;
    socket.setSoTimeout(5000);&lt;br /&gt;
    socket.bind(address);&lt;br /&gt;
    SocketAddress server = new InetSocketAddress(&amp;quot;time.nist.gov&amp;quot;, 37);&lt;br /&gt;
    ByteBuffer buffer = ByteBuffer.allocate(8192);&lt;br /&gt;
    // time protocol always uses big-endian order&lt;br /&gt;
    buffer.order(ByteOrder.BIG_ENDIAN);&lt;br /&gt;
    // Must put at least one byte of data in the buffer;&lt;br /&gt;
    // it doesn&amp;quot;t matter what it is.&lt;br /&gt;
    buffer.put((byte) 65);&lt;br /&gt;
    buffer.flip();&lt;br /&gt;
    channel.send(buffer, server);&lt;br /&gt;
    buffer.clear();&lt;br /&gt;
    buffer.put((byte) 0).put((byte) 0).put((byte) 0).put((byte) 0);&lt;br /&gt;
    channel.receive(buffer);&lt;br /&gt;
    buffer.flip();&lt;br /&gt;
    long secondsSince1970 = buffer.getLong();&lt;br /&gt;
    System.out.println(secondsSince1970);&lt;br /&gt;
    channel.close();&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;
==  User Datagram Protocol Programming ==&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.io.IOException;&lt;br /&gt;
import java.net.DatagramPacket;&lt;br /&gt;
import java.net.DatagramSocket;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
public class Main {&lt;br /&gt;
  final private static int DAYTIME_PORT = 13;&lt;br /&gt;
  public static void main(String args[]) throws IOException {&lt;br /&gt;
    String host = args[0];&lt;br /&gt;
    byte message[] = new byte[256];&lt;br /&gt;
    InetAddress address = InetAddress.getByName(host);&lt;br /&gt;
    System.out.println(&amp;quot;Checking at: &amp;quot; + address);&lt;br /&gt;
    DatagramPacket packet = new DatagramPacket(message, message.length, address, DAYTIME_PORT);&lt;br /&gt;
    DatagramSocket socket = new DatagramSocket();&lt;br /&gt;
    socket.send(packet);&lt;br /&gt;
    packet = new DatagramPacket(message, message.length);&lt;br /&gt;
    socket.receive(packet);&lt;br /&gt;
    String time = new String(packet.getData());&lt;br /&gt;
    System.out.println(time);&lt;br /&gt;
    socket.close();&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>