Zum Inhalt springen

Guybrush Threepwood

Mitglieder
  • Gesamte Inhalte

    4909
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    6

Alle Inhalte von Guybrush Threepwood

  1. Alos ich hab nur mal kurz drüber geguckt, aber soweit ich das sehe legt das Programm keinen neuen Service an.
  2. Guybrush Threepwood

    FAQ

    Hört sich gut an. Allderings wird von mir die nächste Zeit wohl nicht so viel (außer Kritik an anderer Leuts Arbeit :floet: ) kommen, weil ich im Moment keine Zeit habe.
  3. Guybrush Threepwood

    FAQ

    Es kann aber doch nicht schaden am Schluss einer Erklärung auf einen Abschnitt im Standard (soweit vorhanden) zu verweisen;)
  4. Also ich hab das Client Socket jetzt mal nach accept auf SO_DONTLINGER gesetzt (was ja bedeutet das er es nachher direkt schließen soll), aber das hat nichts gebracht.
  5. Ich denke mal weil Javascript Clientseitig vom Browser und nicht vom Webserver interpretiert wird.
  6. Ich hab grad festgestellt, dass wenn ich am Ende der Schleife 5-6 Sekunden warte, das Problem nicht auftritt. Da ich aber nicht solange warten kann bräuchte ich ne Idee wie ich das Umgehen kann. Anscheinend braucht Windows etwas Zeit das Socket anständig zu schließen.
  7. Ok ich mache listen jetzt vor der schleife. Aber wie gesagt, sobald ich das socket so schließe, nimmt die Anwendung jede Verbindung 10 mal entgegen und verarbeitet diese.
  8. Etwas verkürzt sieht der Code so aus: WORD Version = MAKEWORD(2,2); WSADATA WsaData; if (WSAStartup(Version,&WsaData) != NULL) //fehler if (LOBYTE(WsaData.wVersion) != 2 || HIBYTE(WsaData.wVersion != 2)) //fehler g_.ServerSocket = socket(AF_INET,SOCK_STREAM,0); if (g_.ServerSocket == INVALID_SOCKET) //fehler g_.SvrAddr.sin_family = AF_INET; g_.SvrAddr.sin_addr.s_addr = INADDR_ANY; g_.SvrAddr.sin_port = htons(5001); if (bind(g_.ServerSocket,(LPSOCKADDR)&g_.SvrAddr,sizeof(sockaddr_in)) == SOCKET_ERROR) //fehler while (true) { if (listen(g_.ServerSocket,1) == SOCKET_ERROR) //fehler addr_len = sizeof(sockaddr_in); g_.ClientSocket = accept(g_.ServerSocket,(LPSOCKADDR)&CliAddr,&addr_len); if (g_.ClientSocket == INVALID_SOCKET) //fehler if ((nBytes = recv(g_.ClientSocket,szString,600,MSG_PEEK)) == SOCKET_ERROR) //fehler /*Datenverarbeitung*/ send(g_.ClientSocket,strAntwort,strlen(strAntwort),NULL); //if (closesocket(g_.ClientSocket) == SOCKET_ERROR) //fehler } ... [/PHP]
  9. Hi, ich hab eine Serveranwendung bei der ich mir ein Socket anlege und mit diesem in einer Schleife auf einem Port auf Verbindungsanfragen warte. Nach dem eine Verbindung mit einem Client aufgebaut wurde, erhält die Anwendung einen String, verarbeitet diesen und sendet eine Antwort zurück. Im Moment schließe ich das Socket welches ich mit accept() erhalte am Ende der Schleife nicht, allerdings scheint accept() irgendwann nicht mehr zurückzukehren, was ich darauf zurückführe das ich das Socket nicht schließe und Resourcen nicht freigegeben werden. Wenn ich das Socket aber mit closesocket() am Ende der Schleife schließe, tritt kein Fehler auf, die Anwendung nimmt aber jede Anfrage 10 mal entgegen und verarbeitet diese. Hat jemand eine Idee woran das liegen könnte? Gruß Guybrush
  10. Hmm könnte natürlich auch sein, dann ist`s ja gut das ich mein Problem eh anders gelöst habe:floet:
  11. Z.B. dieser hier: HANDLE hPort=NULL; DWORD dwError=0; hPort=CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (hPort == INVALID_HANDLE_VALUE) { return 0; } else { PurgeComm(hPort, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR ) ; DCB dcb; GetCommState(hPort,&dcb); dcb.DCBlength = sizeof(DCB); dcb.BaudRate = CBR_9600; dcb.ByteSize = 8; dcb.StopBits = ONESTOPBIT; dcb.Parity = NOPARITY; if (SetCommState(hPort, &dcb) == NULL) { dwError = GetLastError(); if(hPort != INVALID_HANDLE_VALUE) CloseHandle(hPort); SetLastError(dwError); return 0; } else { SetupComm(hPort,512,512); COMMTIMEOUTS cto; GetCommTimeouts(hPort,&cto); cto.ReadTotalTimeoutConstant = 50; if (SetCommTimeouts(hPort,&cto) == NULL) { dwError = GetLastError(); if(hPort != INVALID_HANDLE_VALUE) CloseHandle(hPort); SetLastError(dwError); return 0; } else { char cTemp; DWORD dw1=0; for (int i=0; i<40; i++) { ReadFile(hPort, &cTemp, 1, &dw1, NULL); printf ("%i ",cTemp); } } } } CloseHandle(hPort); printf ("\nfertig..."); getch(); return 0; [/PHP] Hab ihn an mehreren PC`s ausprobiert. Wenn nichts an das Port gesendet wurde, kahm immer die -52. Hab mein Problem jetzt aber anders gelöst:D
  12. Gibt es eine Möglichkeit festzustellen ob wirklich etwas von einem Gerät ans Comport gesendet wurde? Wenn ich z.B. einfach so etwas vom COM Port lese ohne das etwas dahin gesendet wird, erhalte ich immer ein Zeichen mit dem ASCII Code -52. Wenn jetzt ein Gerät etwas an den Port gesendet hat, dann nichts mehr sendet und ich vom Port lese erhalte ich immer das Zeichen was als letztes gesendet wurde. Kann ich da irgendwie feststellen das nichts neues mehr gesendet wurde?
  13. Also InternetAutoDial() öffnet automatisch die standard Verbindung, da ist es also egal. Bei InternetDial() müsste das auch so sein, die Funktion hab ich aber noch nicht verwendet.
  14. Wieviel Wörter müssen das denn sein? Wenn es sich nur um ein paar handelt könntest du die ja selber aufnehmen und dann wiedergeben (meine mich zu erinnern da mal was in der Windowsapi gesehen zu haben).
  15. Das ganze über Sockets zu machen wäre wohl etwas übertrieben. Die Windows API stellt dazu verschiedene Funktionen bereit. Wenn du nur eine Internet Verbindung aufbauen willst dann schau dir mal Funktionen wie InternetAutodial() oder InternetDial() an. Willst du zu einer bestimmten Resource Connecten dann schau mal nach InternetOpen(), InternetConnect() oder FtpOpenFile(). Gruß Guybrush
  16. Guybrush Threepwood

    FAQ

    Also ich denke das ein Mittelweg die beste Lösung wäre. Auf der einen Seite finde ich nicht das es etwas bringt bei jedem Thema nur auf den Standard zu verweisen (ich glaub auch nicht das nic_power das so gemeint hat), weil dann brauchen wir nur einen Link zum Standard oben im Forum festheften und fertig. Auf der anderen Seite kann es aber auch nicht schaden, wenn man seiner Erklärung einen Link zum entsprechenden Standard (soweit vorhanden) anzufügt, damit Interresierte weiterlesen können.
  17. *rofl* Herzlichen Glückwunsch Saga:)
  18. Laut erstem Test werde ich wohl 76 (warum müssen die die 56 so fett schreiben:rolleyes: )... Teenie: 26% Guter Mensch: 74% Schwul: 22% Real Man: 44% :cool: Unschuld: ist mir zu peinlich:floet: Freak: 13% Revoluzzer: 52% Geistiges Alter: 26 Jahre (ist das gut oder schlecht?) Todesuhr: 31 . 5 . 2059 :marine Draufgänger: 4% Psychopath: 13%
  19. Hab auch den NEC ND1300 A und bin damit voll zufrieden. Allerdings konnte der bei mir keine Rohlinge von MMORE beschreiben.
  20. Glaubt ihr man kann das per Transplantation ausgleichen? :floet:
  21. Guybrush Threepwood

    FAQ

    Ich schließe mich meinen Vorrednern an
  22. Konnte bisher noch keine Lösung finden, wäre also für weitere Tips dankbar
  23. Ja danke ich guck mal. Ich hab auf der mandrake seite auch den parameter "noauto" gefunden, der helfen soll wenn das setup stehen bleibt. Aber es hat sicht absolut nichts geändert.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...