Hello
I'm trying to write tcp server/client communication module to my software. I have problem with my CNewClientSocket - no entry to OnReceive() function.
ServerThread:
<br />
if ( serverSocket.Create( SERVER_PORT ) ) {<br />
while ( working ) {<br />
if ( serverSocket.Listen() ) {<br />
if ( serverSocket.Accept( clientSocket, (SOCKADDR*)&clientAddress, &addressSize ) ) {<br />
CClientThread* newClientThread = (CClientThread*)AfxBeginThread( RUNTIME_CLASS(CClientThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED );<br />
newClientThread->setSocketHandle(clientSocket.m_hSocket);<br />
newClientThread->setSocketAddress( clientAddress );<br />
newClientThread->setParent(this);<br />
clientsMap.SetAt( newClientThread, clientAddress );<br />
clientSocket.Detach();<br />
newClientThread->ResumeThread(); <br />
}<br />
} else {<br />
}<br />
} else {<br />
}<br />
InitInstance on ClientThread:
<br />
if (!AfxSocketInit()) {<br />
return FALSE;<br />
}<br />
<br />
socket.Attach( handle );<br />
socket.Send( "HELLO", 5 );<br />
<br />
char bufor[4096];<br />
int bytes = 0;<br />
<br />
while ( TRUE ) {<br />
::Sleep(100);<br />
}<br />
AfxEndThread(0);<br />
return TRUE;<br />
My socket - is instance of CNewClientSocket which is derived from CSocket:
NewClientSocket.h:
<br />
#pragma once<br />
<br />
<br />
class CNewClientSocket : public CSocket<br />
{<br />
public:<br />
CNewClientSocket();<br />
virtual ~CNewClientSocket();<br />
<br />
public:<br />
virtual void OnReceive(int nErrorCode); <br />
virtual void OnClose(int nErrorCode);<br />
<br />
};<br />
<br />
NewClientSocket.cpp:
<br />
<br />
#include "stdafx.h"<br />
#include "DASim.h"<br />
#include "NewClientSocket.h"<br />
<br />
<br />
<br />
<br />
<br />
CNewClientSocket::CNewClientSocket() {<br />
}<br />
<br />
CNewClientSocket::~CNewClientSocket() {<br />
}<br />
<br />
#if 0<br />
BEGIN_MESSAGE_MAP(CNewClientSocket, CSocket) <br />
END_MESSAGE_MAP() <br />
#endif<br />
<br />
<br />
void CNewClientSocket::OnReceive(int nErrorCode) {<br />
CAsyncSocket::OnReceive(nErrorCode);<br />
}<br />
<br />
void CNewClientSocket::OnClose(int nErrorCode)<br />
{<br />
<br />
CAsyncSocket::OnClose(nErrorCode);<br />
}<br />
OnReceive not working... Anyone knows why ?
Thank you...