问:关于c++子线程中用socket发送信息不成功的问题
void CServerDlg::OnStart()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_sockSend.Create(m_ServerPort,SOCK_DGRAM,NULL))//创建套接字
{
m_sockSend.Bind(m_ServerPort,m_ServerIP); //绑定本地套接口
SetTimer(1,2000,NULL);//创建一个定时器定时发送
//GetDlgItem(IDC_SEND)->EnableWindow(false);//发送按钮无效
//GetDlgItem(IDC_STOP)->EnableWindow(true);//停止按钮生效
}
else
{
AfxMessageBox("Socket创建失败!");
}
//在这儿开始一个子线程
pThread1=AfxBeginThread(ThreadFunc1,&thdStruct[1]);
}
//下面这个计时器处理可以发送到客户端
void CServerDlg::OnTimer(UINT nIDEvent)
{
CString m_ClientIP="127.0.0.1";
UINT m_ClientPort=8080;
int iSend= m_sockSend.SendTo(szSend,10,m_ClientPort,m_ClientIP,0);//发送UDP数据
CDialog::OnTimer(nIDEvent);
}
//在子线程函数中,为什么老发送不出去,也不提示出错,就好像没发送动作一样
UINT ThreadFunc1(LPVOID lpParam)
{
threadStruct* pwwm=(threadStruct*)lpParam;
int bm;
bm=1;
while (bm)
{
Sleep(2000);
strcpy(szSend,"567");//这句能成功
strcpy(szSend,p); //这句也能成功
CString m_ClientIP="127.0.0.1";
UINT m_ClientPort=8080;
m_sockSend.SendTo("1234",10,m_ClientPort,m_ClientIP,0);//这句好像不存在似的,为什么这句不能发送成功
}
return 0;
}