用socket编程,同一个程序,没有调用WSAStartup初始化,在两台计算机一个可以进行正常通信,另一个在socket创建时就失败了。socket创建时就失败是正常的,因为没有初始化,可是为什么在另一台机器上没有调用WSAStartup初始化(也没有调用AfxInitSocket)也能正常创建并且正常通信呢?socket不是必需初始化吗?

解决方案 »

  1.   


    你的这个现象好奇怪,两台机子有什么区别吗?
    你可以netstat 一下,看下ip,port的情况。
      

  2.   

    有这种事情?楼主发现新大陆了,呵呵,开个玩笑,不过未WSAStartup但能成功创建socket的现象确实罕见,电脑也会打盹的时候。
      

  3.   

    这个是偶然吧
    最好还是用WSAStartup初始化
      

  4.   

    Socket通讯必须得初始化的 
      

  5.   

    呵呵,it is impossible! 
      

  6.   

    SOCKET必须调用WSAStartup。你的问题原因也许是这样的:
    成功的程序:满足了某种条件,导致调用了所引用的第三方库中的WSAStartup。
    失败的程序:不满足了某种条件,导致不间接调用任何WSAStartup。
      

  7.   

    回楼上:不知道你的“能用”是否应为“引用”?
    比如第三方库中有myfunc { ... WSAStartup() ...}而你的程序里调用了 myfunc(),而你并不知道myfunc中有WSAStartup。