Terve.
Kokeilin tutustua socket ohjelmointiin Javassa ja hain valmiin esimerkin netistä.
Kokeilen ottaa yhteyden localhostiin (127.0.0.1) ja portin heitin hatusta: 9000
Nyt kuitenkin saan heti virheen:
Couldn't get I/O for the connection to: 127.0.0.1
Onko jotain, mitä en ole ottanut huomioon ?
import java.io.*; import java.net.*; public class EchoClient { public static void main(String[] args) throws IOException { Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null; try { echoSocket = new Socket("127.0.0.1", 9000); out = new PrintWriter(echoSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader( echoSocket.getInputStream())); } catch (UnknownHostException e) { System.err.println("Don't know about host: localhost."); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for " + "the connection to: 127.0.0.1"); System.exit(1); } BufferedReader stdIn = new BufferedReader( new InputStreamReader(System.in)); String userInput; while ((userInput = stdIn.readLine()) != null) { out.println(userInput); System.out.println("echo: " + in.readLine()); } out.close(); in.close(); stdIn.close(); echoSocket.close(); } }
Esimerkin katsoin täältä.
No ensimmäiseksi tulee mieleen sellainen jutttu, että onko sitä porttia sitten kuuntelemassa jokin toinen ohjelma. Tuskimpa tuo yhteys kovin hyvin onnistuu, jos toisessa päässä ei ole ketään...
Ongelma varmastikin on siinä ettei porttia, johon yrität ottaa yhteyttä, kuuntele mikään palvelinohjelma. Linkkisi seuraavalla sivulla on kerrottu kuinka luomaasi asiakasohjelmaa palveleva palvelin luodaan. Suora linkki siihen tässä.
Aaa. Kyllä, kyllä.
Kiitos.
Netcat on ystävä tällaisissa, sillä pystyy vastaanottamaan ja lähettämään tcp/udp dataa, tässä tapauksessa:
nc -l -p 9000
se mitä porttii tulee tulostuu stdouttiin...
Aihe on jo aika vanha, joten et voi enää vastata siihen.