C++ Netzwerk-/Socketprogrammierung
-
Du hast keine main - Funktion!
-
Einfach in ein Header oder Source File folgende Zeile einfügen:
#pragma comment (lib, "ws2_32.lib")
-
Die Zeile: #pragma comment (lib, "ws2_32.lib") ändert auch nichts...wie kann ich da die main-function einbauen ?
Gruß
silent12
-
Schreib unter Deinen obigen Quelltext folgende Zeilen:
int main() { }
-
Perfekt thx klappt :)...gehört da nicht noch ein return 0; rein ?
Gruß
silent12
-
Wenn du schnell zu einem Ziel kommen willst, kann ich dir SFML.Network empfehlen. Wäre plattformunabhängig, bietet wahrscheinlich aber weniger Low-Level-Konfigurationsmöglichkeiten.
-
silent12 schrieb:
Perfekt thx klappt :)...gehört da nicht noch ein return 0; rein ?
Gruß
silent12Nein. Bei main() ist return 0 optional.
-
Führt man Winsocket Programme standartmäßig als Konsolenanwendung aus ?
Gruß
silent12
-
hi
nein. sockets kannst du in jeder art von anwendung verwenden. ich glaub das es erst bei driver-entwicklung einschraenkungen gibt.
du kannst dir sockts wie dateien vorstellen.das ist ein recht gutes buch zur socket programmierung welches ich gerne verwende. vielleicht bekommst du das ja in einer bibliothek zum ausleihen.
Meep Meep
-
Danke für die vielen Tipps

Eine Frage hätte ich trotzdem noch:
Wenn ich die main-function einfach nur ans Ende hinsetze, dann kann ich doch in dem Code darüber keine Ausgaben machen oder ?
Wenn doch wie würde das gehen ? Mit Funktionsaufrufen ?Gruß
Tim
-
Lies dir doch lieber erstmal ein ordentliches Buch zum Thema C++ durch, bevor du dich mit etwas befasst von dem du nicht einmal 10 Prozent verstehst.
-
Auf genau so eine Antwort habe ich irgendwie schon gewartet.

Aber damit das nicht so bleibt und ich außer Schleifen und Arrays... nichts mit C++ kann, will ich mehr lernen.
Nur finde ich immer nur Tutorials generell zu C++ die nur Schleifen, Arrays,... erklären und nicht tiefergehen.
Deshalb wollte ich jetzt mit der Socket-Programmierung anfangen, da es dort wenigstens andere Tutorials gibt
Würde mich SEHR über gute Tutorials (siehe oben) freuen.
Gruß
Tim
-
In Socket-Tutorials wird erklärt wie man mit Sockets umgeht - C++ wird dir da keines beigebracht.
Und da fehlt's noch an ganz grundlegenden Dingen wenn du Fragen stellst wie...Wenn ich die main-function einfach nur ans Ende hinsetze, dann kann ich doch in dem Code darüber keine Ausgaben machen oder ?
Wenn doch wie würde das gehen ? Mit Funktionsaufrufen ?
-
-
Da wird wenigstens mal etwas zu C++ erklärt, was ich nicht kenne.
Danke für das Tutorial zur Socket-Programmierung
Werde ich machen sobald ich diesen Error hier behoben habe:
//Add a carriage return and line feed before sending data char szTemp[len+100];Definition von len:
int len = GetWindowTextLength(GetDlgItem(hdwnd, ID_EDIT_SEND));Error:
Konstanter Ausdruck erwartet
Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.
'szTemp': Unbekannte GrößeKann mir bitte noch jemand helfen ? Würde gerne noch ein Programm zum Laufen bekommen, auf das ich dann später sobald ich weitere Tutorials gemacht habe zurückgreifen kann

Gruß
silent12
-
len ist keine konstante und wird erst zur laufzeit abgefragt. dadurch funktioniert das mit einem c-array nicht. nimm z.b. einen vector.
Meep Meep
-
@silent12
Die "statische" Definition eines Arrays mit variabler Länge ist ein C-Feature (VLA - variable length arrays) welches es in C++ nicht gibt.
-
Nur zu meinem Verständnis nochmal:
In len ist doch Textlänge des Childwindows des Windows mit dem Handle hdwnd gespeichert oder ? Dies wird doch über die GetDlgItem-Funktion ermittelt oder ?Und dieser Wert der nicht konstant ist, da er ja erst ermittelt wird, wenn das Window schon erstellt wurde kann nicht in einem Array verwendet werden, da man wie hustbaer gesagt hat, keine statischen Arrays mit variabler Länge erstellen kann oder ?
Bin noch "blutiger" Anfänger, will aber umbedingt mehr lernen.
Kann mir jemand sagen, was ein vector ist und wie ich diesen einbauen kann ?
Ist das soetwas wie ein statisches Array mit variabler Länge ?Mein Status:
Man muss per #include<vector> Vectoren inkludieren.
Man erstellt sie per vector<type> name(12);
also wäre es bei mir doch: vector<long> szTemp(len+100);
,aber wir mit angezeigt, dass vector nicht definiert sei....Gruß
silent12
-
Passt schon fast
vectorist eine Klasse (bzw. genauer ein Klassen-Template), die (das) im Namespace "std" definiert ist.Du musst also
std::vector<long>schreiben.
(Nur wieso jetztlong, ich dachte du willst ducharArray?)
-
hustbaer schrieb:
(Nur wieso jetzt
long, ich dachte du willst ducharArray?)Weil er ganz offensichtlich die einfachsten Grundlagen nicht kennt, entsprechende, gut gemeinte Hinweise aber nicht hören will, bzw. ignoriert.