Laden...

Forenbeiträge von jaensen Ingesamt 2.760 Beiträge

02.08.2010 - 17:38 Uhr

Weg gefunden diese zu beschleunigen bzw. zu umgehen

Kannst es ja mal mit dem HttpWebRequest versuchen. Ich denke die Binärdaten kommen Base64 Codiert und wenn die Hauptaufgabe des WS das Ausliefern der Bilder ist sollte mit dem WebRequest nicht allzuviel code nötig sein.

Siehe z.B.: WebClient mit HTTP-POST- und Cookie-Unterstützung

26.06.2010 - 01:34 Uhr

Wäre schön wenn du dein Problem hier nochmal in Textform und vielleicht mit etwas Code schildern könntest da nicht jeder lust hat das Video anzusehen und nicht garantiert ist das es genau so lange online und unter der gleichen URL erreichbar ist wie dein Post hier.

22.06.2010 - 04:09 Uhr

Das Feature kenne ich schon, nur kann man damit keine Fenster kaskadieren. Aber ist ja auch wurscht. Mit den klassichen Mitteln kann man sowas schon erreichen so lange es nur um die eigenen Fenster geht.

22.06.2010 - 02:08 Uhr

Kaskaden-Positionierung

Das kenn ich jetzt nur von MDIs und habe das bei Windows 7 für normale Fenster so noch nicht enteckt. Aber den Rest konntest du eigentlich schon immer machen. Es gibt ja die Screen-Klasse mit der du die Bildschirmgröße herausbekommst und auch wie viele Monitore angeschlossen sind.
Da du ja alle deine Fenster kennst kannst du sie natürlich mit den normalen Location- und Size-Properties ausrichten wie du möchtest. Die schicken Animationen bekommst du dann allerdings nicht zu Gesicht.

01.06.2010 - 15:46 Uhr

Das wirst du selbst zeichnen müssen. Da dir die TrackBar allerdings keine Events dafür anbietet wirst du das wie in good ol' MFC machen müssen und die entsprechende Windows-Message (WM_PAINT) abfangen, Context holen und Pinseln anfangen.

Alternativ schaust du dich am besten mal auf Codeproject um oder nimmst Controls von einem Kommerziellen Anbieter (DevXPress hatte da mal ihre XtraEditors kostenlos, k.A. ob es das Angebot noch gibt). Evtl. können die das.

01.06.2010 - 01:19 Uhr

Darf man fragen welchen Zweck dein Programm nachher erfüllen soll (also jetzt nicht aus technischer Sicht)?
Einen Benutzer Programme starten zu lassen um sie nachher wieder zu beenden und dann jemanden per Mail darauf aufmerksam zu machen scheint mir jetzt nicht so sinnvoll außer du möchtest eine Art "Honeypot" bauen.

Die nicht erlaubten Anwendungen gar nicht erst zu installieren oder mit Gruppenrichtlinien zu Arbeiten würde in meinen Augen mehr Sinn ergeben.

31.05.2010 - 22:02 Uhr

Jup, so ist es. Sauberer wäre es IMHO ohnehin eine Schicht aus Stored Procedures für den Datenzugriff dazwischenzuziehen.
Selbst wenn du deine Tabellen irgendwann mal umwirfst und dich für den anderen Ansatz entscheidest bleibt im besten Fall deine Client-Anwendung davon unberührt.

31.05.2010 - 19:36 Uhr

Dann nimm doch eine Stored Procedure.

31.05.2010 - 18:55 Uhr

Lieber alles in ein simples Array verpacken und alles auf einmal schicken. Da dürften die 10 Clients eigentlich kein Problem darstellen.

[EDIT] Damit sind nur die Werte gemeint, das mit dem Delta gilt trotzdem.

31.05.2010 - 17:19 Uhr

Naja kommt auch daruaf an wie die aussehen. Wegen der Latenz etc. sollte das keine Probleme machen. Wenn es 1000 Integers sind sollte es ebenfalls kein Problem sein. Wenn es allerdings 1000 Bitmaps von einer Kamera sind dann siehts anders aus 😉

Evtl. musst du auch immer gar nicht alles übertragen sonder nur ein Delta? Um wie viele Clients handelt es sich denn ca. ?

31.05.2010 - 16:14 Uhr

Naja du hast dein Problem auch sehr allgemein formuliert bzw. erschließt sich mir nicht ganz was du für ein Problem hast.
Es würde mich z.B. wundern wenn die Kommunikation mit der SPS durch die WCF realisiert werden könnte also denke ich das es dir darum geht die gesammelten Daten den Clients über einen Service zur Verfügung zu stellen?

Wenn das der Fall ist dann sehe ich das Problem nicht so recht. Baue einfach einen normalen Service und frag ihn vom Client aus Timer gesteuert ab.

31.05.2010 - 11:00 Uhr

Hmm... hab ich wohl nicht richtig gelesen, ist ja immer der Admin-Pfad mit drin.

Kann ich leider (oder doch zum Glück;) nicht nachvollziehen.
Testcode:


        static string _temp = "";
        static void Main(string[] args)
        {
            for (int i = 0; i < 10000000; i++)
            {
                string tmp = Path.GetTempPath();
                if (_temp != tmp)
                {
                    Console.WriteLine(tmp);
                    _temp = tmp;
                }
            }

            Console.ReadKey();
        }

Schau noch mal genau durch deinen Code. Ich kann mir eigentlich nur noch vorstellen das du den Pfad irgendwo im Code umbaust.

[EDIT]
Oder irgendetwas im MSI Pfuscht an den Umgebungsvariablen rum.

30.05.2010 - 23:13 Uhr

Auf MySQL Datenbanken solltest du auch mit dem CF zugreifen können (Standard MySQL Connector für .Net) ein Beispiel brauchts da eigentlich nicht du dann ganz normal mit ADO.Net arbeiten kannst.

29.05.2010 - 21:36 Uhr

Oder eine DataGridViewAmpelColumn bauen 😉
Creating a custom DataGridViewColumn und viele andere Artikel darüber im Netz...

29.05.2010 - 19:53 Uhr

Mein Wissensstand dazu:
Das geht nicht da das Compact Framework bzw. Windows Mobile keine Zugriffskomponenten für eine Access Datenbank bereitstellt.

Wenn du immer eine Verbindung hast wenn auf die Datenbank zugegriffen werden muss dann könntest du das über einen Webservice machen.
Wenn du die Daten auch offline brauchst dann kannst du eine SQL Server CE Datenbank benutzen musst das dann aber irgendwie synchronisieren.

[EDIT] Wenn mehrere Benutzer gelichzeitig auf der Access DB arbeiten bist du mit dem Service aus Datenkonsistenzgründen sowieso besser dran da du gleichzeitige Zugriffe besser unter Kontrolle bekommst.

Wenn dein System es noch zulässt würde ich ohnehin über einen Wechsel auf SQL Server Express Edition, Firebird oder MySQL (eben ein echtes DBMS) nachdenken. Access Datenbanken werden auf 64 Bit Systemen nämlich nicht unterstützt

29.05.2010 - 01:49 Uhr

Ne andere Frage, in einem V-Server läßt sich keine VM starten, da es schon ein virtualisiertes System ist oder?

😉 Kommt darauf an mit was virtualisiert wurde aber an und für sich geht das schon (z.B. mit VMWare ESX) wobei das sehr langsam werden dürfte.

[Edit]

Eine Datenbank kann durchaus schon mal recht umfangreich den Speicher belegen

Eine Datenbank kann sich aber auch unter Lastspitzen leicht mal ohne Ende speicher reinfressen den sie danach nicht mehr brauchen wird gibt diesen aber dann nicht mehr so schnell her. Über einige Parameter lassen sich Grenzen setzen die man einfach mal unter Last durchprobieren muss. Für SQL Server: Speicherkonfiguration SQL Server

29.05.2010 - 01:34 Uhr

Ja das sollte unproblematisch machbar sein so lange du nicht auf .Net 4.0 mit der neuen CLR umsteigst oder Teile deiner Anwendung auf verschiedenen CLR Versionen betreibst.

Hilfestellung gibts u.a. hier: .Net Framework 4 Migration Issues und natürlich in Foren und Blogs von Leuten die ihre Software bereits migriert haben.

Wer suchet der findet.

28.05.2010 - 21:50 Uhr

Klickt der User mit der rechten Maustaste in das TreeView so soll er lediglich die Möglichkeit haben, ein "html"-Element zu erstellen (aber eben nur einmal).

Das heisst du willst zur Laufzeit validieren ob ein Element an der entsprechenden Stelle hinzugefügt werden kann. Also vergleichbar mit der XML-Completion im Visual Studio welche auch nur an dieser Stelle gültige Element anzeigt wenn eine entsprechende XSD hinterlegt wurde?

Dann könntest du sicherlich vom #Develop Code profitieren da dieser einen Xml-Editor mit code completion besitzt. Dieser ist auch in ein Plugin ausgelagert.
Wahrscheinlich insbesondere von dieser Klasse: src\AddIns\DisplayBindings\XmlEditor\Project\Src\XmlSchemaCompletionData.cs

Wenn sich die XSD ändert musst du das ganze Zeugl natürlich neu initialisieren.

28.05.2010 - 21:35 Uhr

auch wenn es wie mit Kanonen auf Spatzen schießen ist, wäre asterisk eine Empfehlung,

Geiles Teil aber da braucht er zusätzliche Hardware und die ist meist ein bisschen überdimensioniert (Ab 4 Ports etc..)

@inflames2k: Das stichwort dazu ist CTI (http://de.wikipedia.org/wiki/Computer_Telephony_Integration)

[EDIT] Alternativ ein Telefon kaufen welches CTI von Haus aus unterstützt und evtl. nach ner API dafür ausschau halten: Google shopping Ergebnisse - CTI Telefone

28.05.2010 - 20:44 Uhr

Schmutzig ja, schnell nein.

Auf die Ausführungsgeschwindigkeit bezogen 😉

Evtl. könnte der OP nochmal seinen Post etwas strukturierter und ausführlicher wiederholen?

28.05.2010 - 20:36 Uhr

AFAIK können die 2005er aber verwendet werden.

Ja, geht schon aber wie lange noch? Das mussten sie wohl anbieten damit die Leute einfacher migrieren können.
Quelle: Whats new in SQL 2005 Server SP3

28.05.2010 - 20:12 Uhr

Manche LCD-Fernseher strahlen wohl auch recht deftig. Hab ich bei einem Freund erlebt:
Fernseher an -> Empfang schlecht, Fernseher aus -> Empfang super wobei er da einen USB-WLan Stick hatte bei dem die Antenne schon extrem beschissen war.

28.05.2010 - 19:55 Uhr

Ein extra Thread kommt bei meinen Anforderungen nicht in Frage?

Tut er nicht?

[EDIT]
Oder so: Socket.Select()

28.05.2010 - 18:59 Uhr

Was meinst du genau?
Im Eigenschaften-Fenster vom Studio in der Designansicht? Oder meinst du die Properties im Code?

Mit get- und set bringt er mir da nur Fehler...

Welche?

28.05.2010 - 18:57 Uhr

Ich denke mal dass du dich mit den Grundsätzen von SQL vertraut machen solltest.

Und zwar erstmal nicht in deinem Programmcode sondern am besten (wenn du Access benutzt in Access) und beim SQL Server z.B. im SQL Server Management Studio bzw. irgendeiner anderen kompatiblem GUI deiner Wahl.
Da musst du dann nicht jedesmal neu kompilieren und bekommst auch nur die SQL-Fehler angezeigt (die du im Code erst nach dem Ausführen mit einer Exception mitgeteilt bekommst).

28.05.2010 - 18:51 Uhr

Notification Services Beispiele Allerdings sind die Notification Service ab dem 2008er SQL Server nicht mehr unterstützt.

Wenn du kriterien wie z.B. ein DateTime (besser DateTime2)-Feld in deiner Tabelle hast dann kommst du auch nur mit dem SQL Server Agent aus und brauchst keine Trigger.

"Echtzeit" würde es mit den Triggern auch gehen ich weiß aber nicht wie es dann um die Performance bei z.B. inserts bestellt ist.
Du baust z.B. einfach einen After Insert-Trigger auf die entsprechende Tabelle und benutzt dann z.B. einen SOAP Endpoint um einen Webservice aufzurufen der dann wiederum mit der zu benachrichtigenden Anwendung kommunizieren kann.

Solltest du deinen Datenzugriff sowieso schon in Stored Procedures gekapselt haben dann brauchst du gar keine Trigger.

28.05.2010 - 18:31 Uhr

Aus der Doku:

Returns the path of the current user's temporary folder

Benutzt eine deiner Custom Actions impersonation?

28.05.2010 - 17:46 Uhr

Nicht so schön aber sollte funktionieren:
Einen Trigger auf die zu überwachenden Tabellen bauen und bei Änderungen diese in eine Changelog-Tabelle schreiben. Diese wird von einem Agent-Job abgefragt und dann z.B. ein Webservice (oder was auch immer man vom Server erreichen kann) benachrichtigt. Danach wird die Changelog-Tabelle wieder geleert oder bereits versandte Änderungen entsprechend geflagt wenn man sie aufheben möchte.

Dieser Ansatz wäre allerdings nicht "realtime". Kommt drauf an wofür du es brauchst.
Der Notification Service arbeitet meines Wissens nach ebenfalls nicht "realtime".

28.05.2010 - 16:14 Uhr

Kann aber evtl. problematisch sein wenn die Bots in ihren Bedingungen ausschließen. Musst dich da auf jeden Fall vorher schlau machen.

Ansonsten eben der Tipp -> Fiddler
Habe bislang noch alles von Webseiten crawlen können so lange da kein AJAX involviert ist (das wird dann (teilweise viel) komplizierter)

28.05.2010 - 15:47 Uhr

Evtl. wird die Prüfung im Javascript gemacht (was ist das eigentlich für eine strange Seite auf der man sich nicht mit dem IE Anmelden kann?) und das Ergebnis in ein verstecktes Input-Feld eingetragen.

Schau dir den Traffic mal mit Fiddler an (kann auch HTTPS) und schau mal ob du wirklich alle Felder mitschickst.

28.05.2010 - 15:01 Uhr

Ich bräuchte eine Möglichkeit das Scrollen mit dem Mausrad während des bewegen eines Objekts zu blockieren oder ein Ereignis welches das Mausrad auslöst und dann mein Rectangle wieder korrigiert.

Wenn dein Panel auf dem du zeichnest den Fokus hat sollte an und für sich das MouseWheel Event gefeuert werden (verwette ich jetzt allerdings auch nicht meinen Hintern für 😉

Ansonsten wirds etwas umständlicher aber die Message kommt ja irgendwann bei deinem Control an da es ja sonst gar nicht scrollen würde.

Du kannst die WndProc des Controls überschreiben und dann folgende Message handlen wie du das möchtest (z.B. verwerfen wenn gerade ein Objekt gezogen wird): WM_MOUSEWHEEL

27.05.2010 - 19:57 Uhr

Irgendwie ein konstruktionsbedingter Fehler hm... i.d.R kann man die Ports ja in der entsprechenden Konfiguration anpassen. Ansonsten hilft dir ein Proxy in einer VM.

27.05.2010 - 19:04 Uhr

Ich fürchte da gilt das gleiche. Klingt zwar trivial ist es aber wohl nicht.

Um was geht es denn (Anwendung?, Protokoll?) und nur das wir uns verstehen, du meinst schon das alle ankommenden Pakete auf Port 5400 auf dem gleichen Host an Port 15400 ankommen sollen. Wenn du einen Proxy einsetzen kannst (kann auch eine VM sein) dann schaut die Sache wieder anders aus.

27.05.2010 - 15:31 Uhr

also würde ich eher nicht WMI verwenden (wenn es nach deiner aussage her wirklich aufwendiger wäre)

Falsch verstanden 😉 Ich glaube das es mit der WMI einfacher geht als mit einem Kommandozeilenprogramm welches man mit C# steuert.

Ich bin Admin Azubi

Ein Grund mehr für WMI. Das kann auch man wunderbar für viele andere Wartungsaufgaben benutzen und zwar auch mit VBScript per Scripting Host oder über die Windows Power Shell.

Also kein Prozess der das überwacht oder sowas. Oder hab ich da was falsch verstanden?

Ja ich denke schon. Ich nehme an Theki meinte die System.Diagnostics.Process Klasse zum starten von "netsh"

27.05.2010 - 13:10 Uhr

Würde da eher zur WMI raten. Ein Frontend für die Kommandozeilentools geht zwar auch aber ist mit umleiten und parsen der Ausgabe verbunden was die Sache wieder komplizierter gestaltet.

Ein paar links (alle VBx):
Network interface configuration with VB.Net
Setting network parameters using WMI

27.05.2010 - 02:02 Uhr

Wollte auch nach meiner Musterung zur Bundeswehr da die Lehrstellen gerade rar und meine Noten nicht so toll waren. Da hatten die wohl noch keinen Bedarf.
Als ich dann am Ende meiner Ausbildung stand ging die Einberufung auf einmal ganz fix obwohl ich seit der Musterung nichts mehr gehört hatte.

Da fühlt man sich schon unter Druck gesetzt vor allem wenn man mit seiner Zeit schon was besseres vor hat. Bin dann zu einem spezialisierten Anwalt und alles wurde gut geregelt. Kann ich also nur empfehlen.

27.05.2010 - 00:55 Uhr

Da gibt es jetzt ganz verschiedene Probleme die allerdings weniger mit der Frage wo die Connection herkommt zusammenhängen als mit dem grundsätzlichen Aufbau der Anwendung.

Zur Connection:
Du kannst jedes mal wenn du eine benötigst eine neue Instanz der SqlConnection (falls du den SQL-Server verwendest) erstellen da ADO.Net einen ganzen Pool an Verbindungen zum Server hält und die Verbindung nicht jedesmal neu aufgebaut werden muss sondern du stattdessen eine momentan inaktive Verbindung aus dem Pool bekommst. Das einzige was du dann überall benötigst ist der Connection String aus der Config. Die Anwendungskonfiguration kannst du dann auch in einem Singleton etc. halten.

Zu den anderen Sachen:
Deine Forms sollten gar keine Datenbankverbindung benötigen: google -> Data Access Layer. (Auch hier schon oft diskutiert)

Letzteres ist meiner Meinung nach vorzuziehen aber egal wie man es macht, alles wirft früher oder später wieder neue Probleme auf. Man muss eben abwägen was man tatsächlich braucht und wohin sich die Anwendung entwickeln soll.

Wenn du ein bisschen mehr über deine Anwendung schreibst kann man sicherlich einen guten weg finden.

27.05.2010 - 00:28 Uhr

Für neuere Windows-Versionen (Vista, 7, Server 2008) mal hier vorbei schauen: Windows Filtering Platform

Ein bisschen C# Code dazu kann man hier: MSDN Foren - C# Typen für PInvoke

Grundsätzlich scheint es dafür allerdings keine Lösung zu geben die man komplett managed nutzen kann. Das ist nicht weiter verwunderlich da der Netzwerkstack schon etwas recht grundlegendes in fast jedem modernen Betriebsystem darstellt und dementsprechend low level programmiert ist.

Wenn es auf älteren Windows-Versionen laufen soll musst du einen Treiber schreiben: Filter Hook Driver

Sollte man mit den genannten Ansätzen gut ergooglen können. Habe leider selbst nicht so wirklich Ahnung davon.

21.04.2010 - 11:52 Uhr

Windows.Forms Controls lassen sich nicht zoomen.
Und das RectangleShape scheint kein Windows.Forms Standard zu sein? Ohne das Ding zu kennen wird dir keiner helfen können.

15.04.2010 - 15:39 Uhr

Wie wäre es damit:

//*

?

15.04.2010 - 15:18 Uhr

Da eine XSD auch nur ein XML Dokument ist kannst du z.B. XPath benutzen.

14.04.2010 - 17:33 Uhr

Servus!

PHP ist schon in Ordnung. Die meisten Web-Projekte sind heutzutage wohl mit PHP entwickelt worden. Sofern du objektorientiert programmierst bist du damit sicherlich auch für die Zukunft gerüstet. SQL geht damit dann meist zwangsläufig einher genauso wie Javascript. Diese beiden Sprachen sind ja an sich eigenständig und deshalb kannst du sie auch weiterhin benutzen wenn du auf C# oder Java umsteigst.

Bücher kann ich dir jetzt so direkt leider keine empfehlen. Aber ein gewaltiger Unterschied zwischen C# und PHP ist:

  • PHP ist eine interpretierte Sprache
  • C# ist eine kompilierte Sprache und hat ein statisches Typensystem (beides hilft meiner Meinung nach bei größeren Projekten viele Fehler zu vermeiden weshalb ich persönlich C# auch im Web vorziehe)

siehe dazu:
http://de.wikipedia.org/wiki/Interpreter
http://de.wikipedia.org/wiki/Kompilierung

und

http://de.wikipedia.org/wiki/Statische_Typisierung
http://de.wikipedia.org/wiki/Dynamische_Typisierung

natürlich gibt es noch viele weitere Unterschiede aber sind wohl erstmal die konzeptionell wichtigsten.

Aber allgemein gilt: Wenn man eine Sprache kann dann sind weitere schnell gelernt da die meisten Unterschiede in den einzelnen Sprachen oft ausschließlich von der Syntax herrühren.

30.03.2010 - 18:05 Uhr

Das einfachste wird sein in das Tutorial reinzuschauen und das ganze dann auf dem Server zu zeichnen. Ansonsten kommst du um HTML5 Canvas, Flash, Silverlight, SVG un JS, Java, ActiveX oder ähnliches (gibts noch was?) nicht drum herum.

27.03.2010 - 00:26 Uhr

Freakige Sache. Aber da sind in der Tat einige Fragen offen:
Wenn das Explorer-Fenser (ersetze Explorer durch einen beliebigen anderen Dateimanager (Desktop??)) bereits geöffnet ist und auf den Ordner zeigt wo deine Exe liegt soll das Icon dann im geöffneten Fenster zur Laufzeit geändert werden oder erst wenn ich eine neue Filemanager Instanz öffne die die Resource dann erst wieder lädt.
Quasi Ad Hoc und sofort oder wirklich nur die Resource?

In meinen Augen würde das nämlich schon einen Unterschied machen auch wenn ich nicht so der Win32 Profi bin.

27.03.2010 - 00:19 Uhr

Ich stimme da eher mit herbivore ein. Ein TryCreate() klingt für mich so ein bisschen nach "on error resume next" 😉 und das würde sich vom Aufrufer auch wunderbar über einen Try Catch abbilden lassen, nur weiß dieser dann explizit was er da tut (oder auch nicht).
Eine ArgumentException im Konstruktor ist in meinen Augen der richtige Weg (Nur die Klasse selber weiß welche Parameter sie handhaben kann und welche nicht und was wäre der bessere Ort das zu prüfen als eben bei der Erzeugung mit den Parametern).

27.03.2010 - 00:08 Uhr

Wenn ich jetzt wild rummale mittels e->Graphics, zeichne ich dann auf der kompletten ClientArea oder wird mit meinen Zeichenoperationen wirklich nur das Rechteck mit Breite 4 (ClipRectangle) auf meiner ClientArea geupdated?

Kommt darauf an wer/was das neu-zeichnen angestoßen hat. Kannst du selber einfach nachvollziehen in dem du das Paint event abonierst und mit Invalidate(Rectangle) oder Invalidate(Region) ein neu zeichnen veranlasst.
Wenn Windows das tut wird immer nur der Bereich neu gezeichnet von dem erwartet wird das sich was geändert hat (minimize->restore komplette Fläche, am Rand ziehen und damit vergrößern eben nur der bereich der vergrößert wurde)

25.03.2010 - 16:36 Uhr

Da wäre die Reichweite wohl ein bisschen zu hoch als das es für den Anwendungsfall geeignet wäre.

24.03.2010 - 21:58 Uhr

So weit ich das gesehen habe ist AS2 einfach ein Containerformat in welchen man beliebige MIME Typen verpacken kann. Der Container wird dann per HTTPS also nur HTTP mit SSL übertragen. Da SSL ja schon Zertifikate voraussetzt können wahrscheinlich die selben auch für die Signatur des Inhalts verwendet werden.

Aber ich bin weder so ein EDI- noch Signaturprofi 😉

Wenn ich mit sowas zu kämpfen hätte dann würde ich meine bestehenden EDI-Schnittstellen nehmen und einfach zu einem Anbieter gehen, dem sagen das er das für mich mit "pay per use (im Endeffekt SaaS)" an meine Partner verschicken soll.
Wie gesagt kommt es hier natürlich darauf an was man damit vor hat.
Anbieter dafür gibt es genügend. In Deutschland wohl der bekannteste: Seeburger. Dann hat das glaub auch die Euro-Log, in der Schweiz GS1 und in England gibt es wohl auch anbieter die das International anbieten (dann aber doch lieber die Schweizer 😉.
Ansonsten gibts da garantiert was für den BizTalk Server und und und...

Aber mit dem selber implementieren kann ich dir leider nicht wirklich weiterhelfen (Außer auf die RFC verweisen und dir ggf. bei HTTP/S hilfestellung leisten).