在mfc中,tcp监听知道有连接以后怎样创建一个UDP的socket来进行发送数据
我的问题是这样的,在服务端,用TCP的socket(继承自CAsyncSocket类),等接收连接以后,创建一个UDP的socket负责发送,因为函数 virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL );中的rConnectedSocket为一个空的socket,msdn上介绍,其还没有调用creat函数,我想知道rConnectedSocket是什么协议的,默认是tcp吗,如果我要udp是否在Accept函数调用以后,在调用rConnectedSocket.creat()置成udp的呢
下面是我的代码,请大家指教!万分感激!
void CTCPSock::OnAccept(int nErrorCode)
{
CUDPSock* pSocket = new CUDPSock();
if(m_bIsServer)
return;
m_RemoteAddr = new SOCKADDR();
memset(m_RemoteAddr,0,sizeof(SOCKADDR));
if(Accept(*pSocket,m_RemoteAddr))
{
m_bIsServer = true;
pSocket->Create(m_Port,SOCK_DGRAM,FD_WRITE);//对吗
SendThreadInfo* Info = new SendThreadInfo();
Info->sendsocket = pSocket;
Info->sendbuffer = pSocket->m_chSendBuffer;
Info->sendlength = &pSocket->m_nSendLength;
Info->stopped = &pSocket->m_bSendStopped;
Info->sendevent = pSocket->m_pevtSend;
AfxBeginThread(SendThreadProc,Info);
AsyncSelect(FD_CONNECT);
Connect(m_RemoteAddr,sizeof(m_RemoteAddr));
}
else
{
delete pSocket;
delete m_RemoteAddr;
}
CAsyncSocket::OnAccept(nErrorCode);
}