在mfc中,tcp监听知道有连接以后怎样创建一个UDP的socket来进行发送数据

Boy_Vc Boy_Vc 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的问题是这样的,在服务端,用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);
}
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
Boy_Vc
网络编程 18,356 成员 64,161 内容