18,356
社区成员
发帖
与我相关
我的任务
分享
class CUDPDlg;//这是对话框
class CUdpSocket : public CSocket
{
public:
CString TmpBuffer;
public:
CUdpSocket();
void GetDlg(CUDPDlg *dlg);
CUDPDlg *pDlg;
virtual ~CUdpSocket();
public:
virtual void OnReceive(int nErrorCode);
protected:
SOCKADDR_IN m_clientAddr;
};
void CUDPDlg::OnBnClickedStart() //这是创建的UDP
{
m_pSocket = new CUdpSocket();
m_pSocket->Create(48899, SOCK_DGRAM,NULL);
m_pSocket->Connect("10.10.100.254", 48899);
}}void CUDPDlg::OnBnClickedWifiasserver()//这是TCP
{
m_pSocketTCP = new CUdpSocket();
m_pSocketTCP->Create();
m_pSocketTCP->Connect("10.10.100.254",8899);
}
void CUdpSocket::OnReceive(int nErrorCode) //CSocket中的自动接收函数
{
TCHAR recBuf[1024];
int len = sizeof(SOCKADDR_IN);
ZeroMemory(recBuf, sizeof(recBuf));
//..................UDP接收数据.........................
int recBytes = 0;
recBytes = ReceiveFrom(recBuf, 1023, (SOCKADDR*)&m_clientAddr, &len, 0);
//这是UDP的接收,可以正常工作。
那么怎么在这个函数中也能实现TCP的接收呢?而且让两个接收不混乱。
之前我在这里直接添加的TCP的接收函数,当返回的时候,UDP和TCP的接收函数都接收到了数据。
先在这谢谢大神了。
CSocket::OnReceive(nErrorCode);
}