今天发现了个怪问题,我做个测试程序,建立个普通窗口,里面加上下面代码
BOOL CMy62_s1_clientDlg::OnInitDialog()
{
CDialog::OnInitDialog(); //创建本地套接口
m_sockSend.Create(6800,SOCK_DGRAM,NULL);
//绑定本地套接口
m_sockSend.Bind(6800,"127.0.0.1");
//创建一个定时器定时发送
SetTimer(1,3000,NULL);
...
}
void CMy62_s1_clientDlg::OnTimer(UINT nIDEvent)
{
static iIndex=0;
char szSend[20];
sprintf(szSend,"%010d",iIndex++);
//发送UDP数据
int iSend= m_sockSend.SendTo(szSend,10,6801,"127.0.0.1",0);
TRACE("sent %d byte\n",iSend);
...
之后测试时iSend总是为-1失败
后来重新建立个工程,这次选择了
Would you like to include WOSA support?
Windows Sockets
把这个打上钩就程序顺利通过了,但感觉程序里也没什么地方改变
修要修改的stdafx.h文件我也改了,为什么我前面做的那个工程发送信息时失败呢?谁能帮我解答下啊?
BOOL CMy62_s1_clientDlg::OnInitDialog()
{
CDialog::OnInitDialog(); //创建本地套接口
m_sockSend.Create(6800,SOCK_DGRAM,NULL);
//绑定本地套接口
m_sockSend.Bind(6800,"127.0.0.1");
//创建一个定时器定时发送
SetTimer(1,3000,NULL);
...
}
void CMy62_s1_clientDlg::OnTimer(UINT nIDEvent)
{
static iIndex=0;
char szSend[20];
sprintf(szSend,"%010d",iIndex++);
//发送UDP数据
int iSend= m_sockSend.SendTo(szSend,10,6801,"127.0.0.1",0);
TRACE("sent %d byte\n",iSend);
...
之后测试时iSend总是为-1失败
后来重新建立个工程,这次选择了
Would you like to include WOSA support?
Windows Sockets
把这个打上钩就程序顺利通过了,但感觉程序里也没什么地方改变
修要修改的stdafx.h文件我也改了,为什么我前面做的那个工程发送信息时失败呢?谁能帮我解答下啊?
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
手动加上效果一样!
用来初始化.dll库
最后一个函数是:WSACleanup(),它是无参数的。
只有在开始调用了初始化的wsastartup才可使create,bind.....等函数有效。