#define INADDR_ANY (u_long)0x00000000
u_short sport=htons(4345);
......... SerSockaddr.sin_family=AF_INET;
SerSockaddr.sin_addr.S_un.S_addr=INADDR_ANY;
SerSockaddr.sin_port=sport;
errCode=bind(m_sock1,(LPSOCKADDR)&SerSockaddr,sizeof(SerSockaddr));
if(errCode==SOCKET_ERROR)
{
status.Format("bind the server error! code:%d,%d",errCode,WSAGetLastError());
UpdateData(FALSE);
return;
}
..........
调试过程中bind前面的内容都成功初始化,直到bind这里status值为
"bind the server error! code:-1,10038"怎么回事?
出错在哪里?
谢谢11

解决方案 »

  1.   

    Socket operation on nonsocket. 
    An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket,m_sock1是否是有效的套接字?
      

  2.   

    SerSockaddr.sin_addr.s_addr=inet_addr(INADDR_ANY);
      

  3.   

    2楼的说法接近了,m_sock1确实非有效
    但是我这样改了以后还是出错了
    CSocket m_sock1;
    m_sock1=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);//编译器说这行错误错误原因: error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'unsigned int' (or there is no acceptable conversion)是怎么回事?
      

  4.   

    WSAStartup(........SOCKET m_sock1;
    m_sock1=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);//编译器说这行错误
      

  5.   

    m_sock1=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//AF_INET  not PF_INET
      

  6.   

    LZ问题解决了吗?我也遇到相同问题,socket文件符创建成功,但是bind返回-1了