[C++] TCP Chatserver Paket

08/11/2011 10:41 ProfiFighter#1
Hi, liebe EPvP-Community.
Ich habe mir mit der Hilfe von Google, Foren, Downloads usw. einen pro TCP Server geschrieben, der als Chatserver dienen soll. Die Basis ist ja nun soweit fertig, aber mir fehlt jetzt noch die Paket-Methode(Das Protokoll zum Versenden der Informationen zwischen Client und Server). Hab damals nur in VB geschrieben, so wars dann egal, aber nun möchte ich es pro like machen(Google hat nichts dazu ausgespuckt). Also, wenn jemand Tipps usw. hat, post it!
08/11/2011 10:47 SmackJew#2
Was genau ist das Problem? Denk dir ein Chat Protokoll aus oder nimm eines der unzähligen die bereits existieren.
08/11/2011 10:50 ProfiFighter#3
Das Problem ist, dass ich es perfekt haben will und nicht nur 0815 like... Deshalb sind eure Antworten gefragt!
08/11/2011 10:59 .Infinite#4
Quote:
Das Problem ist, dass ich es perfekt haben will und nicht nur 0815 like... Deshalb sind eure Antworten gefragt!
Ich verstehe erhrlich gesagt nicht so ganz wo dein Peoblem ist. Wenn es funktioniert musst du doch nur noch anfagen Nachrichten zu verschicken.
Mehr passiert doch bei einem Chat nicht...
btw. was ist der Unterschied zwischen "0815like" und "prolike"? Wenn es funktioniert funktioniert es.

Quote:
mir fehlt jetzt noch das Protokoll zum Versenden der Informationen
Quote:
(...)TCP Server(...)
08/11/2011 11:04 ProfiFighter#5
@.Infinite: Paket-Methode/ das Protokoll. Du darfst nicht einfach so was wegeditieren xD.
Aso, und der Unterschied zwischen pro like und 0815 like ist, dass der Chatserver halt schneller und stabiler läuft, wenn er pro like geschrieben wurde.
PS1: Ich hatte bestimmt einen saftigen Grund, wieso ich dort einen Schrägstrich reingesetzt habe xD.
PS2: Wenns euch gefällt, setz ich das in Klammern, so kommt es nicht mehr zu einem Missverständnis(Schrägstriche sind hier unbekannt xD)...
PS3: Die meisten Progammierer schreiben dafür eigene Paket-Protokolle... Sowas wär für mich am besten. Wenn jemand so was für mich hat, bitte es hier rein schreiben.
08/11/2011 12:23 SmackJew#6
Quote:
Originally Posted by ProfiFighter View Post
@.Infinite: Paket-Methode/ das Protokoll. Du darfst nicht einfach so was wegeditieren xD.
Aso, und der Unterschied zwischen pro like und 0815 like ist, dass der Chatserver halt schneller und stabiler läuft, wenn er pro like geschrieben wurde.
PS1: Ich hatte bestimmt einen saftigen Grund, wieso ich dort einen Schrägstrich reingesetzt habe xD.
PS2: Wenns euch gefällt, setz ich das in Klammern, so kommt es nicht mehr zu einem Missverständnis(Schrägstriche sind hier unbekannt xD)...
PS3: Die meisten Progammierer schreiben dafür eigene Paket-Protokolle... Sowas wär für mich am besten. Wenn jemand so was für mich hat, bitte es hier rein schreiben.
Bei 'nem simplen Chat hängt die Performance eher davon ab wie ordentlich, durchdacht und clean dein Server Programm geschrieben ist, und nicht ob dein Protokoll nun 'nen 4 Byte oder 8 Byte Header hat. Wo genau ist dein Problem mit 'nem Chat Protokoll? Wenn es sowieso nur ums Chatten geht, ohne Verschlüsselung etc., kannst du die Nachricht auch einfach unverändert übermitteln. Wenn dein Chat irgendwelche besonderen Funktionen hat musst du dir halt ein Protokoll überlegen, dass der Server dann interpretieren kann, und einige Bytes lesen, verarbeiten und weiter versenden lässt nicht gerade viel Raum für Performance. Ob das nun 100ms oder 150ms dauert ist irrelevant. Wenn du wissen willst ob man deinen Code optimieren kann musst du ihn wohl oder übel posten. Ansonsten hör' auf unnütze Threads zu erstellen.
08/11/2011 12:51 ProfiFighter#7
1.) Das ist der erste sinnvolle Beitrag, den ich bis jetzt hier im Thema gesehen hab.

Quote:
Originally Posted by SmackJew View Post
Bei 'nem simplen Chat hängt die Performance eher davon ab wie ordentlich, durchdacht und clean dein Server Programm geschrieben ist, und nicht ob dein Protokoll nun 'nen 4 Byte oder 8 Byte Header hat.
2.) Ja, alles ist ordentlich, durchdacht und clean, es fehlt nur noch ein kleines Puzzle-Teil, wie schon oben erwähnt...

3.) Ich hab schonmal ein Chatprogramm geschrieben, mit Verschlüsselung usw.(Mit allem drum und dran) aber diesmal will ich es besser machen(perfekt).

Quote:
Originally Posted by SmackJew View Post
Ob das nun 100ms oder 150ms dauert ist irrelevant.
4.) Was ist schneller 7Zip, WinRar oder was weis der Geier noch? Stell dir vor, ich bau da noch eine Dateiversend-Funktion rein?
- Client -> Server -> Client = Zu lange.
+ Client -> Client = Schnell.
Wenn man die Datei roh sendet dauerts bestimmt lange usw., aber wenn du alles schnell durchdenkst, dann gehts schnell, so etwas meine ich.

Quote:
Originally Posted by SmackJew View Post
Wenn du wissen willst ob man deinen Code optimieren kann musst du ihn wohl oder übel posten.
5.) Das war nie der Sinn dieses Themas, da ich nur ein kleines Puzzle-Teil suche, das ist doch nicht so schwer... Man, besser ists, wenn ich mich selber drum kümme. Ich wollts perfekt haben und dachte die EPvP Comm. könnte mir helfen und statt meine Fragen zu beantworten werden mir andauernd Fragen gestellt, wdf!

6.) Eine Registrierungs-Funktion kommt auch noch rein, für alles brauch ich ein leistungsstarkes Paket-Protokoll, damit keine Fehler entstehen usw., genau deshalb brauch ich ein leistungsstarkes Paket-Protokoll.

Quote:
Originally Posted by SmackJew View Post
Ansonsten hör' auf unnütze Threads zu erstellen.
7.) Aha, wenn mein Thread unnütz ist, dann ist dein Beitrag auch unnütz. Und von den Anderen will ich garnicht erst reden...

8.) Ich machs jetzt vllt. so wie die Typen von SA-MP, den auf so einen Scheiß habe ich echt keinen Bock mehr. Ein Beispiel von SA-MP Rcon in PHP:
PHP Code:
/**
 *    Let's generate the string needed for the packet.
 */
$sIPAddr "127.0.0.1";                                                         // IP address of the server
$iPort 7777;                                                                  // Server port.
$sPacket "";                                                                  // Blank string for packet.
 
$aIPAddr explode('.'$sIPAddr);                                              // Exploding the IP addr.
 
$sPacket .= "SAMP";                                                             // Telling the server it is a SA-MP packet.
 
$sPacket .= chr($aIPAddr[0]);                                                   //
$sPacket .= chr($aIPAddr[1]);                                                   //
$sPacket .= chr($aIPAddr[2]);                                                   //
$sPacket .= chr($aIPAddr[3]);                                                   // Sending off the server IP, 
 
$sPacket .= chr($iPort 0xFF);                                                 //
$sPacket .= chr($iPort >> 0xFF);                                            // Sending off the server port.
 
$sPacket .= 'i';                                                                // The opcode that you want to send.
                                                                                // You can now send this to the server.
 
/**
 *    Let's connect now to the server.
 */
$rSocket fsockopen('udp://'.$sIPAddr$iPort$iError$sError2);           // Create an active socket.
fwrite($rSocket$sPacket);                                                     // Send the packet to the server.
 
echo fread($rSocket2048);                            // Get the output from the server
 
fclose($rSocket);                                                               // Close the connection 
. Natürlich muss ich das noch etwas abändern und so, aber wenigstens sieht dann der Quellcode etwas geiler aus, als mit so einem 0815 Scheiß!

PS: Closerequest schon abgeschickt!
08/11/2011 13:56 SmackJew#8
Ich editier den Post wenn ich nüchtern bin. Bis später.
08/11/2011 17:32 link#9
Der Typ trollt doch voll mit seinem prolike :D
08/11/2011 20:35 .SkyneT.#10
Ich glaub bei so etwas speziellen musst du schon etwas abwarten bis ne
gute Antwort kommt...

An deiner Stelle würd ich es noch gleichzeitig in einem C++ Forum posten,
dort sind meistens weit mehr Leute die dir helfen können. (richtig)

MfG SkyneT
08/11/2011 22:18 MrSm!th#11
Das ganze klingt irgendwie seltsam, um genauer zu sein, kindisch.
Du schreibst den Chat nun in C++, damit es "richtig prolike" ist und du willst kein eigenes Chat-Protokoll nutzen, weil es nicht 0815-like sondern richtig perfekt werden soll...

Da weiß ich nicht, was ich noch sagen soll. Wenn du deine eigenen Ideen als 0815-like bezeichnest, warum programmierst du dann?

Quote:
Aso, und der Unterschied zwischen pro like und 0815 like ist, dass der Chatserver halt schneller und stabiler läuft, wenn er pro like geschrieben wurde.
Dafür musst du "prolike" sein, sonst kann dein Server nicht besonders gut sein :rolleyes:

Quote:
PS3: Die meisten Progammierer schreiben dafür eigene Paket-Protokolle... Sowas wär für mich am besten. Wenn jemand so was für mich hat, bitte es hier rein schreiben.
Was jetzt? Eigenes oder bestehendes?
Warum nimmst du nicht einfach das IRC Protokoll?

Quote:
6.) Eine Registrierungs-Funktion kommt auch noch rein, für alles brauch ich ein leistungsstarkes Paket-Protokoll, damit keine Fehler entstehen usw., genau deshalb brauch ich ein leistungsstarkes Paket-Protokoll.
Dafür nimmt man normalerweise PHP und SQL.

Quote:
3.) Ich hab schonmal ein Chatprogramm geschrieben, mit Verschlüsselung usw.(Mit allem drum und dran) aber diesmal will ich es besser machen(perfekt).
[...]
Ich wollts perfekt haben und dachte die EPvP Comm. könnte mir helfen und statt meine Fragen zu beantworten werden mir andauernd Fragen gestellt, wdf!
Ich gebs gern zurück, wtf?

Quote:
. Natürlich muss ich das noch etwas abändern und so, aber wenigstens sieht dann der Quellcode etwas geiler aus, als mit so einem 0815 Scheiß!
Werd erwachsen, bevor du programmieren willst.

#closed