Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Socket-ohjelmointi Javalla

javerkki [19.01.2007 10:01:03]

#

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ä.

tn [19.01.2007 11:30:50]

#

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...

A-P [19.01.2007 12:30:52]

#

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ä.

javerkki [19.01.2007 14:49:38]

#

Aaa. Kyllä, kyllä.

Kiitos.

_Pete_ [26.01.2007 12:51:58]

#

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...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta