大家帮我看看这样发送结构体正确吗?
if (SOCKET_ERROR==send(m_socket,(char *)&sendto,sizeof(sendto),0))
{
MessageBox("发送信息失败");
return;
}
运行到这儿会出现DEBUG Assertion Failed!那个对话框,怎么回事?是编译器的 问题还是程序的问题。在以前有个程序里我这样都可以发送,这里和那个程序的唯一区别就是把套接字设为了全局变量,应该没什么影响吧
[解决办法]
语法目前没问题
sendto是结构体实体对象吧?
m_socket这个疑点最大了
[解决办法]
结构体发送格式没错,就看m_socket是否有问题
[解决办法]
这里和那个程序的唯一区别就是把套接字设为了全局变量?
有可能是因为你在调用socket的函数之前,还没有进行socket库的初始化(WSAStartup),
造成了创建的套接字无效
[解决办法]
这个错误是send api函数里面的Assert断言错误,估计是针对套接字m_socket来的,可以之前判断if(INVALID_SOCKET == m_socket).也有可能是sizeof()里面抛出来的,看一下,这个sendto的定义,貌似它是一个api的函数名吧。有时编译器很怪异的,尽量不要用这样的变量名。