Diferencias envío TCP y UDP
Publicado por katacio (1 intervención) el 24/07/2014 14:19:27
Estoy programando con NetBeans y hasta ahora me voy apañando poco a poco pero tengo un problema con los sockets de java y es que el envío mediante TCP lo hago correctamente, pero ahora quiero hacerlo con UDP y leyendo las diferencias he modificado el código pero me encuentro con que no me funciona.
El código de envio correcto en TCP es el siguiente:
____________________________________
Este lo he modificado por el siguiente que no me funciona y quisiera saber el por qué (si alguien fuese tan amable de ayudarme). El problema en NetBeans me pone que está en "paquete.length". Un saludo y gracias de antemano:
El código de envio correcto en TCP es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class EchoSender
{
public EchoSender()
{
}
public static void sendEcho(String destination, int port, String sentence)
{
String echo = (new StringBuilder()).append(sentence).append("\n\r").toString();
Log.info((new StringBuilder()).append("Enviando echo: ").append(echo).toString());
Log.info((new StringBuilder()).append("destination: ").append(destination).toString());
Log.info((new StringBuilder()).append("port: ").append(port).toString());
try
{
Socket socket = new Socket(destination, port);
OutputStream os = socket.getOutputStream();
os.write(echo.getBytes());
os.close();
socket.close();
}
catch(UnknownHostException e)
{
Log.error((new StringBuilder()).append("No se puede encontrar el host para el echo: ").append(destination).append(" en el puerto: ").append(port).toString());
}
catch(IOException e)
{
Log.error((new StringBuilder()).append("Ha habido un problema en el envio del echo: ").append(destination).append(" en el puerto: ").append(port).toString());
}
}
}
____________________________________
Este lo he modificado por el siguiente que no me funciona y quisiera saber el por qué (si alguien fuese tan amable de ayudarme). El problema en NetBeans me pone que está en "paquete.length". Un saludo y gracias de antemano:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.io.IOException;
import java.net.UnknownHostException;
import java.net.DatagramSocket;
import java.net.DatagramPacket;
public class EchoSender
{
public EchoSender()
{
}
public static void sendEcho(String destination, int port, String sentence)
{
String echo = (new StringBuilder()).append(sentence).append("\n\r").toString();
Log.info((new StringBuilder()).append("Enviando echo: ").append(echo).toString());
Log.info((new StringBuilder()).append("destination: ").append(destination).toString());
Log.info((new StringBuilder()).append("port: ").append(port).toString());
try
{
DatagramSocket socket = new DatagramSocket();
byte[ ] paquete = echo.getBytes( );
DatagramPacket os = new DatagramPacket(paquete, paquete.length(), destination, port);
socket.send(os);
socket.close();
}
catch(UnknownHostException e)
{
Log.error((new StringBuilder()).append("No se puede encontrar el host para el echo: ").append(destination).append(" en el puerto: ").append(port).toString());
}
catch(IOException e)
{
Log.error((new StringBuilder()).append("Ha habido un problema en el envio del echo: ").append(destination).append(" en el puerto: ").append(port).toString());
}
}
}
Valora esta pregunta


0