WORD wVersionRequested;WSADATA wsaData;
int err; 
wVersionRequested = MAKEWORD( 2, 2 ); 
err = WSAStartup( wVersionRequested, &wsaData );
CAsyncSocket socket;socket.Create( 6801, SOCK_DGRAM, NULL);有毛病吗?我在一个控制台程序中这样写代码(只有这些),到了create的时候竟然执行后出现错误:debug assertion failed!
Program:...dSetings……sockettest.exe
file:afxwin1.inl
line:19什么的在别的机器上也一样莫名其妙啊

解决方案 »

  1.   

    看样子好像对
    ,你试试先写一句afxsocketinit()
      

  2.   

    控制台程序有没有afxsocketinit()呢?好象基于mfc的才有.是不是套接字版本不对,把
    MAKEWORD( 2, 2 ); 改成MAKEWORD(1,1)或MAKEWORD(2.0)试试呢?
      

  3.   

    这些代码,我在一个对话框的工程中用就没有毛病是不是控制台程序对这个有什么限制呢?哎高人快来救我,我可不想用socket呵呵
      

  4.   

    控制台用MFC... 
    没有看过CAsyncSocket的实现. 但应该是一个很薄的封装. 不知道是不是要初始化MFC...
    如果是的话, 还是直接用api吧. 这样更高效的. 用过第一次后, 再以后你会喜欢上这样. :)
      

  5.   

    但我想知道这是为什么呀我前一段时间正在看《windows网络编程》,所以要用api也没什么大不了的我只是……嗬嗬控制台不可以用MFC吗?
      

  6.   

    xiaoc(xiaoc) :
    你看看MFC中CAsyncSocket 类的源代码就知道了其实这个类中隐藏地创建了一个窗口
    通过这个窗口来实现消息所以在控制台方式下是不能用CAsyncSocket 类的控制台方式不是不能用MFC
    而是只能用到那些与窗口无关的类
    比如CFile这些类