Оба они хороши. Это зависит от задач и вы.

DatagramSocket предназначен для UDP и TCP для ServerSocket. TCP более надежны в плане, что оно обеспечивает доставку, UDP нет. Но UDP пакеты будут гораздо меньше и не такой большой, как заголовки пакета TCP есть.

Если она меньше, то есть больше вероятности, что он приходит быстрее. UDP используется в основном в районах, где вы не видите о ретрансляции. Вы просто не нужно это, потому что информация устарела. Звука, например.

Это лучше сделать небольшой паузы или повтор последних пакетов, чем играть какую-нибудь, что было отправить первого, но получили второй.

Именно от вас принять решение. Если вы не видите, что можете потерять кусочек данных — использование UDP. В противном случае используйте TCP.

Эта подсказка показывает, как проверить, если файл был изменен на сервере!


URL u =null;

long timestamp = 0;

getImage(getDocumentBase()"test.gif");



try {



     u = new URL(getDocumentBase()"test.gif");

     URLConnection uc = u.openConnection();

     uc.setUseCaches(false);



     /*

     ** use timestamp has a reference, re-open an URLConnection

     ** to the same file to check if the timestamp is different

     ** with the getLastModified() method.

     */

     timestamp = uc.getLastModified();

     



catch (Exception e) {

   e.printStackTrace();}

}

Это простая программа для преобразования URI (Uniform Resource Identifiers) для URL (Uniform Resource Locator).


import java.net.*;



public class DemoConvertURItoURL {



    public static void main(String[] args) {

        URI uri = null;

        URL url = null;

        String uriString = "http://www.google.co.in/";

        // Create a URI object

        try {

            uri = new URI(uriString);

        catch (URISyntaxException e) {

            e.printStackTrace();

        }



        // Convert the absolute URI to a URL object

        try {

            url = uri.toURL();

        catch (IllegalArgumentException e) {

            e.printStackTrace();

        catch (MalformedURLException e) {

            e.printStackTrace();

        }



        //print the URI and URL 

        System.out.println("Original URI  : " + uri);

        System.out.println("Converted URL : " + url);



    }



}


Этот совет Java демонстрирует способ передачи датаграмм. Этот код может быть использован при осуществлении взаимодействия между различными компонентами сети.


    public static void senddatagram(InetAddress target, 

      int port, byte[] outbuf, int len) {

      

        try {

            DatagramPacket request = new DatagramPacket(outbuf, 

              len, target, port);

              

            DatagramSocket socket = new DatagramSocket();

            socket.send(request);

        catch (SocketException e) {

        catch (IOException e) {

        }

        

    }

Этот совет Java демонстрирует метод определения имени хоста по IP адресу. Разработчик может использовать этот код в приложения, которые отображает имя хоста на пользовательский интерфейс. Обратите внимание, что GetHostName () не может завершиться успешно, и в этом случае он просто возвращает адрес IP.


    try {



        // Get hostname by textual representation of IP address

        InetAddress addr = InetAddress.getByName("127.0.0.1");

    

        // Get hostname by a byte array containing the IP address

        byte[] ipAddr = new byte[]{127001};

        addr = InetAddress.getByAddress(ipAddr);

    

        // Get the host name

        String hostname = addr.getHostName();

    

        // Get canonical host name

        String canonicalhostname = addr.getCanonicalHostName();



    catch (UnknownHostException e) {

    }

java.net.InetAddress Класс имеет статические методы getLocalHost метод, который возвращает объект LocalHost Тогда GetHostAddress метод возвращает строку IP-адрес в текстовое представление. Так что в вашей программе использовать следующую строку в печать IP-адрес.


import java.net.InetAddress;

import java.net.UnknownHostException;



public class IPAdress {



  public static void main(String[] args) {

    try {

      System.out.println(InetAddress.getLocalHost().getHostName());

      System.out.println(InetAddress.getLocalHost().getHostAddress());

      

    catch (UnknownHostException e) {

      e.printStackTrace();

    }



  }



}

Этот совет Java демонстрирует способ получения датаграммы. Этот код может быть использован при осуществлении взаимодействия между различными компонентами сети.


    try {

    

        byte[] inbuf = new byte[256];  // default size

        DatagramSocket socket = new DatagramSocket();

    

        // Wait for packet

        DatagramPacket packet = new DatagramPacket(inbuf, inbuf.length);

        socket.receive(packet);

    

        // Data is now in inbuf

        int numBytesReceived = packet.getLength();

        

    catch (SocketException e) {

    catch (IOException e) {

    }

Эта подсказка показывает путь, чтобы получить список всех доступных телеконференций с сервера новостей.


import sun.net.nntp.*;

import sun.net.*;

import java.io.*;

import java.util.*;



public class ListGroups extends NntpClient {

  public static void main(String[] args) {

    String server = "news";

    try {

      System.out.println("opening server");

      NntpClient nc = new NntpClient(server);

      System.out.println("asking for help");

      nc.serverOutput.println("HELP");

      String theLine = "";

      DataInputStream dis = new DataInputStream(nc.serverInput);

      while ((theLine = dis.readLine()) != null) {

        if (theLine.equals(".")) break;

        System.out.println(theLine);

      }

      nc.askServer("QUIT");

      nc.closeServer();

    }

    catch (IOException e) {

      System.err.println(e);

    }

  }

}

Эта подсказка показывает способ получить список заголовков новостей.


import sun.net.nntp.*;

import java.io.*;



public class NntpHeader {

  public static void main(String[] args

    throws IOException {

    /*

    ** pass your news server as parameter 

    **     eg. java NttpPost news.server.com

    */

    NntpClient c = new NntpClient(args[0]);

    String newsgroup = "alt.test";

    c.setGroup(newsgroup);

    NewsgroupInfo ni = c.getGroup(newsgroup);

    int first = ni.firstArticle;

    int last = ni.lastArticle;

    for (int i = first; i <= last; i++) {

      try 

        InputStream theHeader = c.getHeader(i);

        BufferedReader br = new BufferedReader(new 

           InputStreamReader(theHeader));

        String theLine;

        System.out.println("-----------------\nHeader " + i + "/" + last);

        while ((theLine = br.readLine()) != null

        System.out.println(theLine);

        }

      catch (NntpProtocolException ne) {

        /* 

        ** probably a cancelled article, just skip it

        */

        }

      }

    }

  }