Zum Inhalt springen

HansChrisLuk

Mitglieder
  • Gesamte Inhalte

    15
  • Benutzer seit

  • Letzter Besuch

Beiträge von HansChrisLuk

  1. ok, ihr habt ja recht. aber es ist auf dauer nur recht deprimierend, wenn man immer nur lernt und lernt und dann nur ein "befriedigend" bekommt. auch wenn man herausforderungen mag, ist das schon ziemlich hart...

    ich hab ja auch überlegt, ob man sich mit einem 3er abschluss überhaupt bewerben kann. denn mit ner 3 liegt man doch bei den bewerbungen auch erst mal ganz unten im stapel, trotz erfahrungen, nebenbei arbeiten und und und...?!

    ok, aber man lernt und wächst ja nur durch seine herausforderungen, und da kommt am dienstag schon gleich die nächste :beagolisc

    einen wunderschönen sonntag morgen noch

    chris

  2. Hallo,

    ich beschäftige mich gerade mit Polymorphie/Vererbung und habe dazu ein paar Fragen. Ich habe ein kleines Programm geschrieben und verstehe leider nicht alle Ausgaben:

    
    public class Vater {
    
      public int var=10;
    
    
      public void zeige() {
    
        System.out.println("Vater " + var);
    
      }
    
    }
    
    
    
    
    public class Sohn extends Vater{
    
    
      public int var = 2;
    
      public int var2 = 22;
    
    
      public void zeige() {
    
        System.out.println("Sohn " + var + " " + var2);
    
      }
    
    
     public static void main (String[] args){
    
        Vater vater_vater = new Vater();
    
        Sohn sohn_sohn = new Sohn();
    
        Vater vater_sohn = new Sohn();
    
    
    
        ((Vater)vater_sohn).zeige2();
    
        System.out.println(((Sohn)vater_sohn).var);
    
        System.out.println((vater_sohn).var);
    
        System.out.println(((Sohn)vater_sohn).var2);
    
      }
    Ausgabe:
    
    Sohn 2 22 
    
    2
    
    10
    
    22
    
    

    Die 1. Ausgabezeile versteh ich nicht, ich dachte, ich habe vater_sohn zu Vater gecastet? Aber wieso nimmt er dann doch die Methode von Sohn?

    Wie kann ich das mit dynamischen und statischem Typ erklären?

    Ich würde ja gern mal schreiben, wie ich es mir bisher vorgestellt hatte, vielleicht stimmt es ja:

    Also in vater_sohn steht eine Referenz vom Typ Vater, auf ein Objekt vom Typ Sohn, ok, also kann vater_sohn alles, was auch Vater kann (sprich Methoden, welche aber überschrieben werden durch Sohn). Allerdings werden die Variablen nicht überschrieben, deshalb steht in dem Objekt, auf das vater_sohn zeigt der Wert für var=10 (die Methode wurde überschrieben)?

    Stimmt das so weit?

    Was passiert aber, wenn ich das jetzt caste?

    Also für Hilfe bin ich dankbar :)!

  3. Also was ich machen möchte ist folgendes:

    Aufgabe:

    Implementieren Sie in C einen einfachen Webserver. Das Programm soll als Kommandozeilenparameter eine Portnummer und ein Arbeitsverzeichnis erhalten und auf dem angegebenen Port auf einfache HTTP GET-Anfragen warten und diese korrekt bearbeiten. Der Arbeitsverzeichnisparameter soll angeben, an welcher Stelle im lokalen Dateisystem sich die HTML Seiten befinden. Geben Sie geeignete Ausgaben über die Abläufe innerhalb Ihres Webservers auf stdout aus, um die Funktionsweise zu verdeutlichen.

    Testen Sie Ihren Webserver durch geeignete Aufrufe durch einen gängigen Webbrowser, z.B. der URL Default PLESK Page, falls Ihr Webserver auf Port 8080 auf Verbindungen wartet.

    So, das möchte ich erreichen :eek

    Also bisher habe ich nach Wiki&Co so viel verstanden, dass ich vom Client eine Get-Anfrage bekomme

    GET /index.html HTPP/1.1
    
    Host: localhost:8080
    So, und dann schickt der Server die Datei:
    HTTP/1.1 200 OK
    
    Date: Tue, 28 Nov 2006 21:32:18 GMT
    
    Server: Apache
    
    Last-Modified: Sat, 10 Dec 2005 16:31:53 GMT
    
    ETag: "4814c-1914-439b02f9"
    
    Accept-Ranges: bytes
    
    Content-Length: 6420
    
    Connection: close
    
    Content-Type: text/html; 
    
    charset=iso-8859-1
    
    <html><head><title>Fachbereich</title></head><body><h1>Fachbereich</h1>...

    So, und da dachte ich, ich schicke einen String einfach per send(), war wohl falsch. Aber ich weiß trotzdem leider noch nicht, wie ich es übermittle... :confused:

    Gruß

    hans

  4. Hallo,

    also einen Client habe ich nicht programmiert. Ich möchte einfach mit einem Browser (z.B. IE7) den Server über

    http://localhost:8080/index.html

    "anrufen".

    Vorher gebe ich beim Start des Serves noch an, wo sich die index.html-Datei befindet, die er senden soll.

    Also ich muss noch das HTTP-Protocal einbinden? Und wie mach ich das dann mit er index.html?

    :uli

    Gruß&Dank

    Chris

  5. Hallo,

    also falls Du nur die Zahlen rauslesen möchtest, könnte vielleicht eines der folgenden Dinge helfen

    strcspn() – einen Teilstring ermitteln

    strpbrk() – Auftreten bestimmter Zeichen suchen

    strrchr() – das letzte Auftreten eines bestimmten Zeichens im String suchen

    strstr() – String nach Auftreten eines Teilstrings durchsuchen

    strtok() – String anhand bestimmter Zeichen zerlegen

    Wird ausführlich auf dieser Seite beschrieben:

    Galileo Computing :: C von A bis Z – 13.15 Standard-Bibliothek <string.h>

    Falls Du es richtig ausrechnen musst, dann hat Guybrush recht, da sind dann Binärbäume am besten...

    Gruß

    Chris

  6. Hi,

    ich programmiere gerade einen Server, allerdings klappt es noch nicht ganz mit den Daten senden (bzw. manchmal klappt es und manchmal wieder nicht). Einmal wird eine Seite aufgebaut, allerdings mit sehr viel zufälligen Zeichen und manchmal passiert einfach gar nicht.

    Woran liegt das?

    
    void main () {
    
    	SOCKET sock;
    
    	SOCKET sock2;
    
    	struct sockaddr_in server;
    
    	struct sockaddr_in client;
    
    	char text[256]="<html><head><title>Fachbereich Mathematik </title></head><body><h1>Mein neuer Fachbereich </h1>\0";
    
    	int len;
    
    
    
    	WSADATA wsa;
    
    	if (WSAStartup(MAKEWORD(1 ,1), &wsa)){
    
    		printf("WSAStartup() failed");
    
    	}
    
    
    	sock = socket( AF_INET, SOCK_STREAM, 0 );
    
    	/*Falls Initialisierung fehlgeschlagen liefert socket -1*/
    
                if (sock < 0) {
    
                              printf("Fehler beim Erzeugen des Sockets");
    
                 }
    
    
    	memset( &server, 0, sizeof (server));
    
    	// IPv4-Adresse
    
    	server.sin_family = AF_INET;
    
    	// Jede IP-Adresse ist gültig
    
    	server.sin_addr.s_addr = htonl( INADDR_ANY );
    
    	// Portnummer 8080
    
    	server.sin_port = htons( 8080 );
    
    
    	if(bind( sock, (struct sockaddr*)&server, sizeof( server)) < 0) {
    
    		printf("FEHLER bei bind()");
    
    	}
    
    
    	if( listen( sock, 5 ) < 0 ) {
    
    		printf("FEHLER bei listen()");
    
    	}
    
    
    
    	for(; {
    
            len = sizeof( client );
    
            sock2 = accept( sock, (struct sockaddr*)&client, &len);
    
            if (sock2 < 0) {
    
                printf("FEHLER bei accept()");
    
            }
    
            // Hier beginnt der Datenaustausch
    
    		if( send(sock2,text,strlen(text),0 ) < 0 ) {
    
    			printf("FEHLER bei send()");
    
    		}
    
    		fprintf(stdout,"SEND");
    
    
        }
    
    
    	closesocket(sock);
    
        closesocket(sock2);
    
        WSACleanup();
    
    
    
    
    }
    
    [/code]

    Und da habe ich gleich noch eine andere Frage: Wie mache ich es mit der index.html, kann ich dem Client einfach einen Link zu der Dtei schicken, oder liest der Server diese aus und sendet sie dann mit send()?

    Vielen Dank und einen guten Rutsch in ein neues Jahr...

    Gruß

    Chris

  7. Hi,

    und wie mache ich das mit den Library-Verzeichnissen? Soll ich das ganze Verzeichniss einbinden?!

    Wenn ich dem Linker also einen Pfad ohne Leerzeichen vorgebe, dann sollte es funktionieren?

    Vielen Dank für die viele Hilfe. Ich probiere es heute Abend aus und sag bescheid!

    Gruß & Dank

    Chris

  8. Du hast doch geschrieben:Wie genau hast du das gemacht?

    Ach so, beim Projekt habe ich über Properties -> Linker den Pfad zur Biblio angegeben (C:\programme\visual studio\...)

    Hast du das Platform SDK installiert?

    Weiß ich leider gar nicht genau. Wie finde ich das heraus?

    Doch, mit #pragma comment. Das ist aber nicht Teil des Standards, nicht jeder Compiler kann das.

    Stimmt, das habe ich schon probiert gehabt, ich war mir aber nicht sicher, ob es das richtige dafür ist. Ich werde es damit noch einmal probieren... bzw mit /link

    Das sollte mit /link gehen. Aber warum bedienst du deinen Compiler über die Kommandozeile, wenn du eine IDE hast?

    Ich arbeite lieber mit dem Editor, der ist schön klein und wirkt irgendwie "direkter", als diese riesige IDE, mit all den Projekten, Einstellungen und Fehlermeldungen :). Bisher hatte auch immer der Editor gereicht, aber ich glaube, die Zeiten sind langsam vorbei...

  9. Hi,

    also ich arbeite mit Visual Studio 2005.

    Was meinst Du mit "Hast du da einen Pfad mit angegeben?"

    Also ich habe die Datei auch nicht auf meinem PC und ich habe sie auch nicht im Prog mit angeben.

    Kann man eine Biblio nicht auch per Code einbinden? Wahrscheinlich nicht :confused: ... Ich habe sonst immer im Editor programmiert und dann mittel Visual Prompt die Dateien mit: cl Kuckuck.c

    kompiliert. Gibt es da nicht noch eine Möglichkeit eine Biblio mit einzubinden:

    cl Kuckuck.c -incl c:\Biblio.lib

    oder so?

    Vielen Dank schon einmal

    Gruß

    Chris

  10. Hallo,

    also ich versuche eine Verbindung zu einem Server aufzubauen, allerdings klappt das überhaupt nicht. Das ist mein Code:

    #include

    #include

    void main () {

    SOCKET sock;

    int conn;

    struct sockaddr_in server;

    unsigned long addr;

    struct hostent *hp;

    sock = socket( AF_INET, SOCK_STREAM, 0 );

    if (sock < 0) {

    printf("Fehler beim Erzeugen des Sockets");

    }

    memset( &server, 0, sizeof (server));

    addr = inet_addr("216.239.59.99");

    memcpy( (char *)&server.sin_addr, &addr, sizeof(addr));

    server.sin_family=AF_INET;

    server.sin_port=htons(80);

    conn=connect(sock,(struct sockaddr*)&server, sizeof(server));

    }

    und wenn ich es kompiliere bekomme ich die Fehlermeldung:

    get_string3.obj : error LNK2019: unresolved external symbol _htons@4 referenced

    in function _main

    Was mache ich falsch? Muss ich noch die Biblio wsock32.lib einbinden?

    Ich arbeite unter Win und mit dem Editor (ConText)

    Gruß

    Chris

    P.S.: Ich hab jetzt mal in Visual Studio ein Projekt erstellt und die wsock32.lib durch den Linker hinzugefügt, nun bekomm ich aber immer die Fehlermeldung:

    LINK : fatal error LNK1181: cannot open input file 'C:\Programme\Microsoft.obj'

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...