PDA

View Full Version : Problema Socket[Java]


Dhavamba
16-09-2012, 15:25
Dovrei leggere questo URL: http://www.dmi.unict.it/pappalardo/prova/16.html
Ma non ci riesco, la stringa risposta mi dą completamente vuota, perchč????



/**
*
* @author Salvatore
*/

import java.net.*;
import java.io.*;

public class esercizio_16 {

public static final int PORT = 7400;


public static void main(String[] args) throws SocketException, UnknownHostException, IOException
{

// creazione client

DatagramSocket client = new DatagramSocket(PORT);
client.setSoTimeout(30000);

// creazione payload

String a = "GET pappalardo/prova/16.html";
byte[] arr = a.getBytes();

// creazione indirizzo

InetAddress addr = InetAddress.getByName("www.dmi.unict.it/pappalardo/prova/16.html");

// creazione porta server

int porta = 80;

while (true)
{

//creazione e spedizione pacchetto

DatagramPacket packetOUT = new DatagramPacket(arr, arr.length, addr, porta);
client.send(packetOUT);

//creazione pacchetto per ricevere

DatagramPacket packetIN = null;
byte[] buf = new byte[256];
packetIN = new DatagramPacket(buf, buf.length);

// ricezione

client.receive(packetIN);
String risposta = new String(packetIN.getData());
System.out.println(packetIN.getData());
System.out.println(risposta);
}




}

}

sottovento
16-09-2012, 16:43
Perche' usi i datagram? Il testo dice di aprire uno stream, quindi mi aspetto che sia in uso TCP, non UDP.

Prima di scrivere l'applicazione, dovresti fare una prova, spedendo quella stringa mediante telnet.
Per esempio, potresti fare (da win command prompt; sotto linux la sintassi e' leggermente diversa):

telnet 192.168.0.34 80

Se riesci a collegarti, il cursore si portera' all'inizio della finestra. E' probabile che ci siano messaggi di benvenuto, ma non sono necessari.
A questo punto, digiti la stringa assegnata:
GET /gp/prova/16.aux\n

(attenzione - non e' detto che l'echo sia attivato, quindi potresti non vedere quello che digiti)

e vedi quello che succede. Mi sembra che partire in questo modo sia piu' facile, no? Potresti anche gia' vedere il testo, quindi il lavoro e' semplificato