Socketbesipiel will nicht

Status
Nicht offen für weitere Antworten.

Spin

Top Contributor
Hey Leute ich arbeite mich ein wenig in Netzwerkprogrammierung ein und mein Beispiel will nicht.

Man soll nur die Domain eingeben und das wars.

Ich benutze den Port 13 für Daytime, diese Funktion ist in jeden UNIX Rechner enthalten.

Java:
public class Socketverbindung {

    public static void main(String []args){

        /* Verbindung zu dem eingegebenen Host mit der Portnummer 13
         * Nachdem der Socket steht, die empfangenden Daten holen*/
        Scanner scanner = new Scanner(System.in);
        String eingabe = scanner.next();

        if (eingabe.isEmpty()) {
            System.err.println("<host>");
            System.exit(1);
        }
        try {
            /* Port 13 : Daytime Service auf UNIX Servern */
            Socket sock = new Socket(eingabe, 13); // Hostname oder InetAdress
            InputStream in = sock.getInputStream(); // Datenempfang ( OutputStream - Versenden )
            int len;
            byte[] b = new byte[100];
            while ((len = in.read(b)) != -1) {
                System.out.write(b, 0, len);
            }
            in.close();
            sock.close();
        } catch (IOException e) {
            System.err.println(e.toString()); // Ausgabe des Fehlers.
            System.exit(1);
        }
    }
}


Ganz einfach. Aber "Connection timed out: connect"

Danke für Tipp.
 

mfernau

Bekanntes Mitglied
Also bei mir läuft kein Dienst auf Port 13 ohne das ich etwas dafür tue.. Es muss also auch einen Dienst bei Dir geben, der auf diesem Port überhaupt lauscht und etwas antwortet
 

mfernau

Bekanntes Mitglied
testen ob so ein Dienst auf deinem Rechner läuft kannst du auch mit telnet:
telnet localhost 13

oder statt localhost ein anderer hostname
 

Spin

Top Contributor
Ok danke. Ich merke schon dass auf diesen Port nichts läuft.
Kein Response :/

Naja habe Probeweise den Port 21 genommen und bekomme ne Antwort.
Port 21 -> FTP.

Danke:toll:
 
S

SlaterB

Gast
zur Ergänzung noch mit eigenem Server:
Java:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        final int port = 5995;
        String eingabe = "localhost";

        Runnable r = new Runnable()
            {
                public void run()
                {
                    try
                    {
                        ServerSocket server = new ServerSocket(port);
                        System.out.println("Server läuft");
                        while (true)
                        {
                            Socket x = server.accept();
                            x.getOutputStream().write(new byte[]
                                {41, 42, 43, 44, 45, 46, 47, 48});
                            Thread.sleep(500);
                            x.close();
                        }
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                }
            };
        new Thread(r).start();

        Thread.sleep(2000);
        System.out.println("gleich gehts los");
        Socket sock = new Socket(eingabe, port);
        System.out.println("bin drin");
        InputStream in = sock.getInputStream();
        int len;
        byte[] b = new byte[100];
        while ((len = in.read(b)) != -1)
        {
            System.out.write(b, 0, len);
        }
        in.close();
        sock.close();
        System.out.println("\nEnde");
        System.exit(0);
    }

}
 

Spin

Top Contributor
Ich habe es hier auch gemacht , aber da bekomme ich auch nur einen Fehler.
In meinen Buch steht dass es für Linux programmiert wurde, aber ich bin Win-user.

Kann mir einer sagen welchen Port ich nehmen kann , um einfache schreib und lese sachen auszuprobieren?

Ich kenne eine reihe an Ports, wie 80 und 21, usw. , aber mich würde mal interessieren über welchen man schreiben kann.

* Ports:
* Kommunikation zwischen zwei Rechnern läuft auf der Basis: Client-Server.
* Bsp.: Seitenabruf im Browser.
* Auf einem Host laufen meist unterschiedliche Server-Anwendungen, die noch dazu von
* mehreren Clients gleichzeitig benutzt werden können. Um die Server voneinander zu unterscheiden
* zu können: -> Portnummer. (Oberhalb des Transportprotokolls.)


Java:
 public static void main(String []args){


        /* Verbindung zu dem eingegebenen Host mit der Portnummer 13
         * Nachdem der Socket steht, die empfangenden Daten holen*/
        Scanner scanner = new Scanner(System.in);
        String eingabe = scanner.next();

        if (eingabe.isEmpty()) {
            System.err.println("<host>");
            System.exit(1);
        }
        try {
            /* Port 13 : Daytime Service auf UNIX Servern */
            Socket sock = new Socket(eingabe, 21); // Hostname oder InetAdress
            InputStream in = sock.getInputStream(); // Datenempfang
            OutputStream out = sock.getOutputStream(); // Daten versenden
            // Timeout setzen
            sock.setSoTimeout(300); // in ms
            // AusgabeThread erzeugen
            OutputThread th = new OutputThread(in);
            th.start();
            // Schleife für Benutzereingaben
            BufferedReader conin = new BufferedReader(new InputStreamReader(System.in));
            String line="";
            while(true){
                // Eingabezeilen lesen
                line = conin.readLine();
                if(line.equalsIgnoreCase("QUIT")){
                    break;
                }
                // Eingabezeilen an ECHO server schicken
                out.write(line.getBytes());
                out.write('\r');
                out.write('\n');
                // Ausgabe abwarten
                th.yield();
            }
            //Programm beenden
            System.out.println("terminating output stream..");
            th.requestStop();
            th.yield();

            try{
                Thread.sleep(1000);
            }
            catch (InterruptedException e ){

            }
            in.close();
            sock.close();
        } catch (IOException e) {
            System.err.println(e.toString()); // Ausgabe des Fehlers.
            System.exit(1);
        }

     }

}
class OutputThread extends Thread {

    InputStream in;
    boolean stoprequesetd;

    public OutputThread(InputStream in) {
        super();
        this.in=in;
        stoprequesetd = false;

    }
    public synchronized void requestStop(){
        stoprequesetd = true;
    }

    @Override
    public void run(){
        int len;
        byte[] b = new byte[100];
        try{
            while(!stoprequesetd) {
                try{
                    if((len = in.read(b)) != -1){
                        break;
                    }
                     System.out.write(b, 0, len);
                } catch ( InterruptedIOException e){
                    // nochmal versuchen
                }
            }
        }catch (IOException e) {
            System.err.println(e.toString()); // Ausgabe des Fehlers.
            System.exit(1);
        }
    }
}


Danke . PS: Ich nutze das Handbuch zu Javaprogrammierung
 
T

tuxedo

Gast
Ab 1024 aufwärts bis hin zu 65535 kannst du bedenkenlos testen. Ich wähle in der Regel Ports im 5 stelligen Bereich.

Wenn du eine "BindException" o.ä., bekommst ist der Port schon von was anderem belegt.

Für Ports <=1024 brauchst du root/admin rechte ...

- Alex
 
S

SlaterB

Gast
> Kann mir einer sagen welchen Port ich nehmen kann , um einfache schreib und lese sachen auszuprobieren?

wie gesagt, programmier dir doch einen eigenen Server in Java, in deinem Buch müßte es dazu auch Beispiele geben,
sonst bei google Stichwort EchoServer Java
 

Spin

Top Contributor
Hey Slater , das ist erst im nächsten Abschnitt;)

Aber danke dir ;)
Danke euch beiden.


Aber das Problem ist immer noch mit den Ports. Ich habe einen größer als 1024 genommen und mein Apache läuft auch.

Die Anweisung telnet localhost 7 für einen ECHO
geht wohl nur unter linux .....

Naja mir ist anfangs nur wichtig dass ich den code verstehe , und das läuft :)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
hieuhp132 Server wird nicht auf zweiten Anfrage von Client geupdated Netzwerkprogrammierung 3
JavaDevOp Socket Status von UDP-Port prüfen (PortUnreachableException funktioniert nicht?) Netzwerkprogrammierung 32
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
B Multicast-Nachrichten-Empfang funktioniert nicht Netzwerkprogrammierung 5
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
S BufferedStream funktioniert nicht immer Netzwerkprogrammierung 7
T OutputStream kommt nicht an Netzwerkprogrammierung 18
G UDP Packet empfangen funktioniert nicht. Netzwerkprogrammierung 16
L30nS RMI RMI-Server kann Dialog nicht volkommen anzeigen Netzwerkprogrammierung 2
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
S .jar läuft local, aber nicht remote (SSH/Terminal) Netzwerkprogrammierung 10
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
J SSL haut nicht hin Netzwerkprogrammierung 3
A Socket-Anwendung (BufferedWriter/Reader liest nicht aktuellen Wert) Netzwerkprogrammierung 6
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
J Wechsel auf Jdk13 , sfpt funktionier nicht mehr Netzwerkprogrammierung 2
Dann07 Proxy funktioniert nicht so wie gewünscht! Netzwerkprogrammierung 18
B RESTful API weiß nicht weiter Netzwerkprogrammierung 2
L Kann VM nicht ueber Host Name finden Netzwerkprogrammierung 0
V Ich finde den Fehler nicht... Netzwerkprogrammierung 2
H Einfacher Server funktioniert nicht Netzwerkprogrammierung 1
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
S Socket Webserver mit SSLSocket geht nicht Netzwerkprogrammierung 1
P RMI stub wird nicht gefunden Netzwerkprogrammierung 8
N Test Servlet funktioniert nicht Netzwerkprogrammierung 11
M com.google.gson wird nicht erkannt Netzwerkprogrammierung 2
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
D FTP ListNames() funktinoniert nicht richtig Netzwerkprogrammierung 2
Thallius JDBC getConnection kommt nicht zurück Netzwerkprogrammierung 1
KingSquizzi3 Website parsen mit Hilfe von jsoup funktioniert nicht Netzwerkprogrammierung 3
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
F Reader/ Writer werden nicht geschlossen Netzwerkprogrammierung 2
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
R Socket bei server.accept(); gehts nicht weiter Netzwerkprogrammierung 2
K Server liest Daten nicht Netzwerkprogrammierung 6
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
G Mail senden funktioniert nicht mit SSL Netzwerkprogrammierung 7
L IText mit Servlets, funktioniert nicht Netzwerkprogrammierung 0
E Gruppenchat: Über HTTPS oder nicht? Netzwerkprogrammierung 5
P nanoHttp upload.html page lädt nicht Netzwerkprogrammierung 4
M Byte Array kommt nicht an Netzwerkprogrammierung 0
X Daten können nicht sofort empfangen werden Netzwerkprogrammierung 1
D TCP Socket funktioniert nicht richtig Netzwerkprogrammierung 3
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
D Socket UDP Client reagiert nicht auf spontane Meldungen Netzwerkprogrammierung 5
C Servlet erstellen klappt nicht Netzwerkprogrammierung 3
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
S Socket (client) verbindet nicht Netzwerkprogrammierung 6
B Methoden und Konstruktoren von Java.net package werden nicht geladen Netzwerkprogrammierung 2
L Email versenden mit Java funktioniert nicht, Fehlermeldungen: MessagingException & SocketException Netzwerkprogrammierung 10
L Server anpingen (Pingzeit) ?? Pingzeit wird nicht verändert Netzwerkprogrammierung 6
C Portscanner funktioniert nicht! Netzwerkprogrammierung 8
M JSP wird im gesamten Projekt nicht neugeladen Netzwerkprogrammierung 3
B HTTP Webseite unter IP-Addresse nicht aufrufbar - unter Domain schon Netzwerkprogrammierung 9
K Chatprogramm - Server funktioniert nicht Netzwerkprogrammierung 5
A Socket ASCii Zeichen werden nicht per udp übermittelt. please help . Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
H HTTP Header Response kann nicht ausgelesen werden Netzwerkprogrammierung 4
K Socket InputStream wird nicht erzeugt Netzwerkprogrammierung 4
G FTP FTP-Client funktioniert nicht bei Modem-Verbindungen Netzwerkprogrammierung 8
R Socket SSL-Connect in Servlet - keystore wird nicht gefunden Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
V Socket Objekte werden nicht aktualisiert Netzwerkprogrammierung 2
F Kann Klasse nicht zu Servlet casten Netzwerkprogrammierung 5
T Server und Client verbinden nicht Netzwerkprogrammierung 6
M HTTP File Upload mit Prozessbar Funktioniert nicht. Netzwerkprogrammierung 8
K Socket byte Schleife beendet nicht Netzwerkprogrammierung 9
J FTP FTP funktioniert nicht. Netzwerkprogrammierung 5
M Socket Exception tritt auf - weiß nicht weiter Netzwerkprogrammierung 3
L Socket Client empfängt nicht Netzwerkprogrammierung 6
S anderer Rechner wird nicht gefunden Netzwerkprogrammierung 20
das-mo Client/Server sendet nicht Netzwerkprogrammierung 7
M Socket InputStream liest nicht vollständig Netzwerkprogrammierung 7
S soap kann nicht zu 127.0.0.1:8090 unter Windows verbinden Netzwerkprogrammierung 2
F RMI einfacher Chat - Callbacks(?) funktionieren nicht Netzwerkprogrammierung 7
X Änderung des Objekts wird nicht serialisiert Netzwerkprogrammierung 9
M Socket TCP keep alive Exception wird nicht ausgelöst Netzwerkprogrammierung 11
T Empfangen klappt Senden nicht - Connection timed out Netzwerkprogrammierung 12
G Client funktioniert nicht Netzwerkprogrammierung 2
C HTTP Content-Length nicht übermittelt!? Netzwerkprogrammierung 7
J Socket Chatserver aus dem Internet nicht erreichbar Netzwerkprogrammierung 19
S UDP Broadcast - Pakete kommen nicht immer an Netzwerkprogrammierung 15
D RMI URL nicht gefunden Netzwerkprogrammierung 2
M Senden von Daten nicht direkt möglich? Netzwerkprogrammierung 6
N Socket geht auf Windows, aber auf Mac nicht ? Netzwerkprogrammierung 3
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
M while-Schleife funktioniert nicht bei Nachrichtempfang von Server Netzwerkprogrammierung 3
P Socket IRC Client nicht kompatibel mit Server Netzwerkprogrammierung 30
L Socket Chat funktioniert nicht Netzwerkprogrammierung 2
S Servlet - Datei kann nicht gelöscht werden Netzwerkprogrammierung 12
K RMI Angemeldetes Objekt nicht aktuell? Netzwerkprogrammierung 9
2 Socket ObjectOutputstream kehrt nicht zurück Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben