winsock programmierung



  • Meinst Du nicht #include <string>? oder using namespace std;? Es geht auch mit einem normalen char... hast Du dir denn das Beispiel auf meiner Seite nicht angesehen? Da werden doch eingkommende Daten zunächst in einen String gehauen...



  • dochdoch habs schon... hatte den namespace vergessen :>

    bye freelancer



  • Ich hoffe du hast das include <fstream.h> auch rausgeschmissen? Es heißt nämlich <fstream> ohne .h am Ende.
    Ein <fstream.h> gab es nie. Auf manchen Compilern verursacht dieser Code daher Fehler.



  • ja, damit gibs keine probleme mehr... ich hab nochmal ne frage zu den sockets:
    krieg ich irgendwie mit, wenn der andere den socket schliesst?
    und bei server:
    wenn ich eine anfrage mit accept angenommen hab, dann warte ich am besten in einer schleife auf daten auf diesem socket, oder? (ich will bis jetzt nur mit einem client kommunizieren)
    praktisch so:

    accept(...);
    while(1)
    {
    recv(...);
    }
    closesocket(...);
    

    nur fehlt da wie gesagt, was der server macht, wenn der client bei sich den socket schliesst...

    bye freelancer



  • Ehm freelancer find ich jetzt ein wenig blöde... Ich hab' doch geschrieben dass es auf meiner Page (siehe unten) ein Chat Beispiel gibt! Da hast Du Server, Client und eine Schleife die Daten die ankommen in einen String packt und die Schleife erkennt gleich, wenn der andere den Chat schließt. Wieso ignorierst Du?

    Gruß,
    Chris



  • sorry hab erst gepostet und dann gedacht 😕



  • No problem... auf jeden Fall siehste da wies geht. Ich probier gerade mal eine Adresse zu einer IP zu Resolven und dann wieder zurück zu ReResolven. :>

    Gehts nun @ freelancer



  • jopp klappt 🙂
    danke!

    grüsse freelancer



  • btw zu dem banner auf deiner page:
    wxwindows heisst jetzt wxwidgets 🙂

    grüsse freelancer



  • Sicher? In wxWidgets kenne ich mich nicht aus. Hast Du ICQ?



  • hi,
    irgendwie gehen mir daten verloren. auf der einen seite schicke ich in einer while-schleife 6 nachrichten, und auf der anderen warte ich mit recv in einer anderen while schleife darauf. und es kommt relativ oft vor, das welche fehlen 😞
    gibts ne lösung dafür?

    grüsse freelancer



  • Hi. Wie gesagt...

    chris (20:07):
    dann sende in größeren zeitabständen... oder schau dich um nach File In File Out ... das ist relativ kompliziert aber ist die einzige möchtlich keit wie man keine daten verliert.

    Entweder, du sendest etwas verzögert, so dass Du die Hoffnung haben kannst, dass alles "zufällig" ankommt 😃 oder Du verwendest den "Herr FiFo" (File In, File Out System). Dabei wird ein String immer wieder mit den ankommenden Socketdaten aufgefüllt, bis auch wirklich "EIN NEUES DATENPAKET" angekommen ist und wird dann ausgewertet. Ist etwas komplizierter aber ich verwende das bei meinen verschiedenen Chatsystemen immer... Da kommt jeder Byte auch 100%ig an. Eventuell schreibe ich dazu mal ein Tutorial, bzw. Quelltext und veröffentliche ihn auf win-api.com, eventuell auch am Wochenende.

    Naja vielleicht hastes bis dahin schon geschafft 😉

    Greez
    Chris


Anmelden zum Antworten