|
Оба они хороши. Это зависит от задач и вы.
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 5, есть isReachable () в классе InetAddress. Вы можете указать тайм-аут или NetworkInterface использовать. Для получения дополнительной информации об основных Internet Control Message Protocol (ICMP), используемого Пинг, увидеть.
|
Этот совет 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[]{127, 0, 0, 1};
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
*/
}
}
}
}
|
|