一个客户端程序,一个服务端程序.都运行后,在客户端输入127.0.0.1,可以聊天了,但
现在把服务器端放在另一台电脑上运行,等待连接,客户端输入那台电脑的IP,却无法连接?
(这两台电脑已经连在一起,ping可以,网上邻居也已经可以了)

解决方案 »

  1.   

    检查Connect()返回值,错误时GetLastError将返回错误的文字描述。
    异步时在OnConnect()里检查错误代码。
      

  2.   

    create一個斷口,然後connect能不能成功
    用getlasterror得到返回錯誤
      

  3.   

    应该是代码问题
    你可以DEBUG一下,,跟踪看Client端Connect的时候,是否成功。
    看Server端Accept的时候,出错了没有。。
      

  4.   

    可能是服务端没有绑定自己的ip(bind())
      

  5.   

    高手帮忙啊:困惑了一个下午了:(....
    我编了一个客户服务聊天程序(一个客户端程序,一个服务器程序),服务器程序运行后,监听来自客户的连接.首先我在同一台电脑上实验,客户端输入127.0.0.1,就可以和服务端程序收发消息了.
    然后我在两台电脑上实验.两台电脑连接情况这样:
    1.都是linux平台各有一个网卡,用一根网线连接起来,并设定静态IP,然后在各自机子终端,ping对方IP,显示连接成功,然后我把服务程序放到另一台B电脑上,让它监听,我在A电脑上运行客户程序,同时输入对方B的IP,但连接不成功.
    显示:  error to connect server!连接代码这样: char sIP[] = "192.168.1.100"; if((host = gethostbyname(sIP))==NULL)//也可指定其他IP
      {
         printf("error to client gethostbyname");
         exit(1);
      }
      //初始化socket
      conn_fd = socket(AF_INET,SOCK_STREAM,0);
      memset(&serv_addr,0,sizeof(serv_addr));
      serv_addr.sin_family = AF_INET;
      serv_addr.sin_port = htons(SERVER_PORT);
      serv_addr.sin_addr=*((struct in_addr*)host->h_addr);  //连接服务器
      if((ret = connect(conn_fd,(struct sockaddr*)&serv_addr,
      sizeof(struct sockaddr))) == -1)
      {
       printf("error to connect server!\n");
       exit(1);
      }