在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);
}
下面是我的代码,请大家指教!万分感激!
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);
}
...全文
相关推荐
MFC中利用CSocket实现UDP通信
要使用CSocket进行UDP通信,我们需要创建一个CSocket对象,并设置其为UDP模式。以下是一些关键步骤:1.
SOCKET + MFC 双向通信 UDP + TCP 版本
- 实现TCP服务器端,通常需要创建一个监听Socket(CSocketServer),等待客户端连接请求;客户端则使用CSocket对象建立与服务器的连接。2.
c++/MFC 极为简单的socket实例
初始化Socket:创建Socket对象,并设置其属性,如协议类型(TCP或UDP)、地址族(通常为AF_INET)和Socket类型(如SOCK_STREAM用于TCP)。2.
MFC UDP通信简单实现
创建套接字:使用socket函数创建一个UDP套接字。3. 绑定本地地址:如果需要,服务器端使用bind函数将套接字绑定到一个特定的本地端口。4.
MFC TCP/UDP最经典例子
在MFC中使用TCP,你需要创建一个基于CAsyncSocket类的对象,然后调用成员函数来监听、连接、发送和接收数据。


网络编程
