Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Windows Sockets

Windows Sockets

Scheduled Pinned Locked Moved C / C++ / MFC
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Anthony9887
    wrote on last edited by
    #1

    Hi, I'm experiencing some problems with reading data from sockets. I have a thread that constanly reads(polls) data from the sockets port. Except it randomly hangs on on the recv() function. Is there something I'm doing wrong. Here is code sample. Thanks DWORD ThreadProc(LPVOID lparam) { char szBuffer[256]; while(1) { if(recv(socket, szBuffer, 256, 0)!= SOCKET_ERROR) ParseData(szBuffer); } return 0; }

    S 1 Reply Last reply
    0
    • A Anthony9887

      Hi, I'm experiencing some problems with reading data from sockets. I have a thread that constanly reads(polls) data from the sockets port. Except it randomly hangs on on the recv() function. Is there something I'm doing wrong. Here is code sample. Thanks DWORD ThreadProc(LPVOID lparam) { char szBuffer[256]; while(1) { if(recv(socket, szBuffer, 256, 0)!= SOCKET_ERROR) ParseData(szBuffer); } return 0; }

      S Offline
      S Offline
      Serge Krynine
      wrote on last edited by
      #2

      do you mean the thread gets blocked on the recv() function if no data ? if yes, that's the expected behaviour: If no incoming data is available at the socket, the recv call blocks and waits for data to arrive according to the blocking rules defined for WSARecv with the MSG_PARTIAL flag not set unless the socket is nonblocking. In this case, a value of SOCKET_ERROR is returned with the error code set to WSAEWOULDBLOCK. The select, WSAAsyncSelect, or WSAEventSelect functions can be used to determine when more data arrives. Serge

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups