import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.Vector; /** *Classe d'esempio per la connessione al Trading tramite la porta 10002. *Questo esempio si connette e stampa la situazione portafoglio e l'elenco degli ordini. *Poi fa un esempio di send di un comando trading,per sicurezza e' stato inserito un comando che non fa NULLA. *Dopo aver mandato il comando si otterrà la risposta a video e si chiuderà la connessione e terminarà il programma. * *NB:avendo messo un comando NULLO ovviamente la risposta sarà NULLA,a video si visualizzerà un H(HeartBeat), * ma questa non è la risposta ma quello che passa in quel momento,cioè NULLA. */ public class TradingConnect{ Socket s; //il socket che utilizziamo per la connessione PrintWriter pW; //fornisce i metodi print e println, che permettono di scrivere qualunque dato Java, convertendolo automaticamente in stringa. BufferedReader bfr; //usa un buffer (memoria tampone) per memorizzare temporaneamente i caratteri da leggere/scrivere int porta; //porta sul quale fare l'accesso String host; //host sul quale fare l'accesso Vector ordini=new Vector(); TradingConnect(int porta,String host){ this.porta=porta; this.host=host; } /** * Connessione al socket. * creo il socket il printwriter e il buffer. */ private void Connessione(){ try { s = new Socket(host, porta); pW = new PrintWriter(s.getOutputStream(), true); bfr = new BufferedReader(new InputStreamReader(s.getInputStream())); System.out.println("Connessione avvenuta"); System.out.println(RLine()); System.out.println(RLine()); boolean state=true; System.out.println("Lista ordini"); System.out.print("Caricamento"); while(state){ String line=RLine(); if(line.startsWith("ORDER")){ System.out.print("."); ordini.add(line); } else if(line.startsWith("ERR")){ System.out.println(line); state=false; } else state=false; } System.out.println("."); int i=0; while(i