UDP用多线程如何实现????
小弟想知道如何用多线程实现UDP之间数据的接收
具体要求: 有多个套接字同时接收数据,每个套接字在一个单独的线程中不断的接收网络中发送过来的数据。
我的做法是: 1. 在OnInitDialog()中创建CSocket套接字,然后启动线程。
m_uSocket.Create(5800, SOCK_DGRAM);
AfxBeginThread(ReceiveFunc, this, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
2. 定义函数ReceiveFunc().
UINT CUDPThDlg::ReceiveFunc(LPVOID p)
{
unsigned char *buff;
buff = new unsigned char[10];
CString szIP("127.0.0.1");
UINT uPort = 6800;
while(m_bRun) //此时m_bRun位TRUE
{
m_uSocket.ReceiveFrom(buff, 10, szIP, uPort, 0);
CString str(buff);
m_edit1.SetWindowText(str);
Sleep(50);
}
delete []buff;
return 0;
}
请问各位大侠这样写有错误吗? 可以实现我所需要的功能不??? 很想知道大家的看法,希望大家能给些建议,小弟我还是个新手,在这里发自心底的感谢各位。
还有在编译时报错: error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
这是什么原因了????
谢谢大家看了我的啰嗦文章!!