Click here to Skip to main content
15,921,837 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Mark Salsbery13-Sep-07 6:15
Mark Salsbery13-Sep-07 6:15 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Beaon13-Sep-07 6:59
Beaon13-Sep-07 6:59 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Mark Salsbery13-Sep-07 7:04
Mark Salsbery13-Sep-07 7:04 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Beaon14-Sep-07 3:43
Beaon14-Sep-07 3:43 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Mark Salsbery14-Sep-07 6:04
Mark Salsbery14-Sep-07 6:04 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Beaon14-Sep-07 6:20
Beaon14-Sep-07 6:20 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Beaon14-Sep-07 8:22
Beaon14-Sep-07 8:22 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Mark Salsbery14-Sep-07 12:39
Mark Salsbery14-Sep-07 12:39 
Hi Cliff,

I forgot to mention....

The listening socket is separate.  Once it is placed in a listening state, that's
all it does.  For that socket, you'd want to use the FD_ACCEPT flag to get a window message
when a client tries to connect.

The WSAAsyncSelect() calls can be made any time after the sockets are created.

Generally, it's done something like this....

For the listening socket, call WSAAsyncSelect(...FD_ACCEPT) after you call listen(), then
return to your GUI or whatever.  When you get a message indicating FD_ACcept to your
window, THEN call accept().


For the client end of the connection, call WSAAsyncSelect(...FD_CONNECT) right after you
create the socket.  Then set the socket to non-blocking mode using ioctlsocket(), something like:

        DWORD dwNonBlockingMode = 1;
        ::ioctlsocket(hSocket, FIONBIO, &dwNonBlockingMode);


Call connect() on the socket and return to the GUI - your window will receive the message when
connection is complete.  When you receive the connect completion message, call
WSAAsyncSelect(...FD_READ|FD_CLOSE) on the socket to start receive and close notifications.


For the server end of the connection, when you receive an accept notification,
call accept() to create the connection socket.
Set this socket to non-blocking mode using ioctlsocket() as shown above,
then call WSAAsyncSelect(...FD_READ|FD_CLOSE) to start receive and close
notifications.


Make sense?

Mark


*EDIT*  I crossed out the parts about setting the sockets to non-blocking.
Calling WSAAsyncSelct() does this for you
Smile | :)


Mark Salsbery
Microsoft MVP - Visual C++

Java | [Coffee]

GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Beaon17-Sep-07 5:49
Beaon17-Sep-07 5:49 
AnswerRe: Very Basic socket programming, Winsock! Newb help.. Pin
Beaon17-Sep-07 9:21
Beaon17-Sep-07 9:21 
GeneralRe: Very Basic socket programming, Winsock! Newb help.. Pin
Mark Salsbery17-Sep-07 9:43
Mark Salsbery17-Sep-07 9:43 
QuestionDisplaying text in non-english language on console [modified] Pin
ComplexLifeForm12-Sep-07 7:02
ComplexLifeForm12-Sep-07 7:02 
AnswerRe: Displaying text in non-english language on console Pin
Matthew Faithfull12-Sep-07 8:21
Matthew Faithfull12-Sep-07 8:21 
QuestionExiting process Pin
koumodaki12-Sep-07 6:16
koumodaki12-Sep-07 6:16 
AnswerRe: Exiting process Pin
Hamid_RT12-Sep-07 6:44
Hamid_RT12-Sep-07 6:44 
AnswerRe: Exiting process Pin
Mark Salsbery12-Sep-07 6:45
Mark Salsbery12-Sep-07 6:45 
AnswerRe: Exiting process Pin
aks.12-Sep-07 15:49
aks.12-Sep-07 15:49 
Questionproblem with multithreading and wrapper-class object Pin
kyer12-Sep-07 4:53
kyer12-Sep-07 4:53 
AnswerRe: problem with multithreading and wrapper-class object Pin
Randor 12-Sep-07 4:59
professional Randor 12-Sep-07 4:59 
GeneralRe: problem with multithreading and wrapper-class object Pin
kyer12-Sep-07 5:30
kyer12-Sep-07 5:30 
GeneralRe: problem with multithreading and wrapper-class object Pin
Randor 12-Sep-07 6:07
professional Randor 12-Sep-07 6:07 
GeneralRe: problem with multithreading and wrapper-class object Pin
kyer12-Sep-07 8:23
kyer12-Sep-07 8:23 
AnswerSolution Pin
kyer12-Sep-07 9:12
kyer12-Sep-07 9:12 
Questionexcel problem Pin
tunminhein12-Sep-07 4:28
tunminhein12-Sep-07 4:28 
QuestionRe: excel problem Pin
David Crow12-Sep-07 5:33
David Crow12-Sep-07 5:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.