chaoz2 schrieb:
oh mein gott, ich bin so blöd ...
ich hab vergessen
printf("Content-Type: text/html\n\n");
in mein code einzufügen ... deswegen hat der server gestreikt ... und ich dachte es liegt am libtool
vielen dank nochmal
Korrekt wäre:
printf("Content-Type: text/html\r\n\r\n");
Die Zeilenschaltung ist gemäß Spezifikation immer CR/LF. Die mir bekannten Webclients kommen zwar auch nur mit einem LF zurecht, was aber streng genommen nicht notwendig ist.
Tntnet
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Okay ich habe mir jetzt folgende Funktion zusammen gebastelt:
int wait()
{
cout << endl << "Drücken Sie eine beliebige Taste um Fortzufahren";
cin.ignore(255,'\n');
cin.get();
}
und es Funktioniert
du hast ja auch vergessen, in dem pro-file die ui-files anzugeben.
TEMPLATE = app
CONFIG += qt
HEADERS += choiceDialog.ui.h \
client.ui.h \
optionsdlg.ui.h \
server.h \
serverdlg.ui.h \
cryptic.h
SOURCES += cryptic.cpp main.cpp server.cpp cryptic.cpp
FORMS += choiceDialog.ui client.ui optionsdlg.ui serverdlg.ui
die klassen wie z.B. ChatProg sind nur in den ui-files definiert. beim kompilieren wird automatisch das programm uic aufgerufen, das aus den ui-files dann "normale" cpp- und h-files macht, wo diese klassen drin definiert sind.
wenn die header wie qapplication.h nicht gefunden werden, hast dui vielleicht die -dev-pakete von qt3 nicht installiert?
außerdem musst du unter linux höchstwahrscheinlich aus der cryptic.cpp auch ne standart c++-unit mit h- und cpp-file machen, das sollte aber kein problem sein. musst dann natürlich auch immer cryptic.h anstatt cryptic.cpp einbinden (#include "cryptic.h"). (das beispiel der pro-file oben ist schon auf h- und n cpp-file ausgelegt)
aber danke, dass du es ausprobierst!
mfg,
julian
Hallo,
ich habe hier einen kleinen Server der ein Verzeichnis überwachen soll um auf Änderungen an Dateien reagieren zu können, so eine Art "Hot Deploy".
Ausgeschnitten und vereinfacht sieht das so aus:
In der Initialisierungsphase des Servers registriere ich mich für die Notifizierung auf Änderungen.
...
struct sigaction act;
int fd;
act.sa_sigaction = signalHandler;
sigemptyset(&act.sa_mask);
act.sa_flags = SA_SIGINFO;
sigaction(SIGRTMIN + 1, &act, NULL);
fd = dirfd(m_directory);
fcntl(fd, F_SETSIG, SIGRTMIN + 1);
// We want to be notified if a file is created or changed
fcntl(fd, F_NOTIFY, DN_MODIFY|DN_CREATE|DN_MULTISHOT);
...
Diese Funktion wird als Signalhandler registriert:
void signalHandler(int sig, siginfo_t *si, void *data) {
DEBUG("File changed/created");
}
Soweit funktioniert das alles.
Mache aber den Server über fork/chdir/umask zum Daemon werde ich nicht mehr über signalHandler benachrichtigt, obwohl Signalhandler eigentlich vererbt werden sollten.
Jemand eine Idee?
Danke.
Artchi schrieb:
MacUmsteiger schrieb:
Läuft das unter Mac alles über Cocoa oder gibts da noch eine in der Praxis
relevante Ebene darunter, die nicht objektorientiert ist?
Höre zum erstmal, das jemand unglücklich über eine native OO-API ist. Und:
Ich fand es nur bewundernswert, außerdem würde ich mir die Ebene darunter
auch gerne etwas genauer ankucken.
Ja, mit diesem SEM_UNDO-Flag kann das funktioiern, der Semaphor bleibt zwar wird aber vom kernel zurückgesetzt. Ok, ich versuch das dann zu implementieren.
Vielen Dank
btw 1: <iostream.h> ist veraltet, das heißt seit fast 10 Jahren <iostream>
btw 2: vielleicht hilft dir http://wiki.debian.org/BuildingCrossCompilers weiter
ein problem konnte ich nun klären, das mit Exception not rethrown. Dazu gibts nen artikel
http://groups.google.com/group/comp.programming.threads/browse_thread/thread/652bcf186fbbf697/f63757846514e5e5
Aber nun kommen die nächsten probleme.
grundsätzlich segfaultet er nun im gdb des öfteren bei ganz einfachen new operationen???
CPlayer * newPlayer = new CPlayer(Connection);
und das versteh ich nun überhaupt nicht.
Wenns probleme im Constructor gibt sollte er da nicht auf den verweisen? der stackframe ist hier
#0 0xb7c4c0a1 in mallopt () from /lib/tls/libc.so.6
#1 0xb7c4b8fb in mallopt () from /lib/tls/libc.so.6
#2 0xb7c4ac43 in malloc () from /lib/tls/libc.so.6
#3 0xb7dcb2fe in operator new () from /usr/lib/libstdc++.so.5
#4 0x08123cea in main (argc=2, argv=0xbfffddf4) at main.cpp:198
rüdiger schrieb:
Kopfgeldjaeger schrieb:
cout<<system("date +%d-%B-%Y-%H-%M");
Datum: 0
jo, schau dir mal an, wie die Funktion man: system(3) funktioniert
btw. boost::date_time dürfte dich interessieren.
Joa, hab ich dann auch gemerkt
Fedaykin schrieb:
ok danke für die riesen hilfe.... langsam komm ich mit den debugger klar.... und er hat mir sehr geholfen. Also danke nochmal
keine ursache. eigentlich hast du dir selbst geholfen, nicht ich....
ten schrieb:
ja, die dinger sind nicht schlecht. arm-core, viele on-chip peripherals und jtag port. von samsung gibt's übrigens baugleiche typen, aber viel billiger....
ja, die sind echt nicht schlecht, ich teste noch nur mit qemu. Aber bald werde ich auf einem gumstix testen dürfen
Hallo zusammen.
Folgende frage. Ich habe eine größere Netzwerkanwendung deren komplette Netzwerkschnittstelle ich umgeschrieben habe. Nun tritt folgendes problem auf.
Bevor ein client "zwangs ausgeloggt" wird sende ich noch eine nachricht die das zwangsausloggen dem client mitteilt.
Dannach kann ja eigentlich die verbindung gelöscht werden. Da aber das senden in threads gemacht wird kommts nun zum problem. Das "ausloggen" würde nicht mehr gesendet werden. Also versuchte ich das mit einen mutex zu sperren. Der destructor prüft ob der mutex wieder frei ist und löscht erst dann alles. Nun kommts aber dazu das send() manchmal blockiert.
Kurzum. Hauptanwendung sendet logout, dieses setzt den mutex auf gesperrt. Will senden aber aus irgend einen grund blockt das senden. Der Mutex wird wohl nicht entsperrt. Destructor wird aufgerufen.... und???? naja irgendwann kommt dann ein Segfault.
Kann der Grund dafür sein das eben der destructor nicht in einer gewissen zeit abgearbeitet ist? Was könnte noch der grund dafür sein?
Ok ich hab mir jetzt folgendes gebastelt:
#include <stdio.h>
#include <stdlib.h>
#include <regex.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <iostream>
#include <fstream>
using namespace std;
#define mbfsiz 800
char url[256];
char method[32];
char ident[256];
char src_address[256];
char line[mbfsiz];
char* matchurl(void);
char* matchurl(void)
{
sscanf(line, "%255s %255s %255s %31s", url, src_address, ident, method);
//cout << "line: " << line << endl;
return line;
}
int main()
{
fstream file("/home/lxuser/Desktop/fooo",ios::out);
while(fgets(line, mbfsiz, stdin) != NULL)
{
fprintf(stdout, "%s\n", matchurl());
}
file.close();
return 0;
}
Wenn ich dann
redirect_program /some/where/redirector
in die squid config schreibe und squid laufen lasse gibt er keine Webseiten
mehr an den Browser zurück ==> scheinbar lädt er mein Programm.
Nur kommt keine fooo auf meinem Desktop wie
fstream file("/home/lxuser/Desktop/fooo",ios::out);
ja eigentlich erzeugen sollte