Server如下:m_hSocket = socket(AF_BT, SOCK_STREAM, BTHPROTO_RFCOMM);SOCKADDR_BTH sa;
memset (&sa, 0, sizeof(sa));
sa.addressFamily = AF_BT;
sa.port = nSocketPort & 0xFF;bind (m_hSocket, (SOCKADDR *)&sa, sizeof(sa));listen(m_hSocket, 1);//有个线程在Accept
Client如下:m_hSocket = socket(AF_BT, SOCK_STREAM, BTHPROTO_RFCOMM);SOCKADDR_BTH sa;

int nSize = sizeof(sa);memset(&sa, 0, sizeof(sa));
sa.addressFamily = AF_BTH;
sa.btAddr = (bt_addr)lpszHostAddress;
sa.port = nHostPort & 0xff;connect(m_hSocket, (SOCKADDR *)&sa, sizeof(sa));没连上,取得错误是10035

解决方案 »

  1.   

    server端:1.
    sa.addressFamily = AF_BT;
    =>
    sa.addressFamily = AF_BTH;2. 
    sa.port = nSocketPort & 0xFF;
    The valid range for requesting a specific RFCOMM port is 1 through 30你的nSocketPort是多少?
    client:
    lpszHostAddresss是什么值?
      

  2.   

    10035   是#define   WSAEWOULDBLOCK                     (WSABASEERR+35)  呵呵,就是这样了,非阻塞模型里面出现这样的错误是很正常的,就是表示在指定的时间内操作没有完成,以后的send   或者recv都有可能出现这样的错误的^_^     
    对于send和recv解决方法就是用while循环直到成功了为止  
       
      

  3.   

    接收到这个错误后,就Sleep(100); 等,然后继续send重新尝试发送一下,可以循环多次尝试
      

  4.   


    是一个IP地址, 只在一台机器上测试,用的IP是"127.0.0.1"现在去获取错误,在bind就不成功,返回10049
      

  5.   

    还有sa.addressFamily = AF_BT; sa.addressFamily = AF_BTH; 这是一样的.
      

  6.   

    你吧port先改到30以下,看看bind那里能成功了不
      

  7.   

    但是connect还是没成功,还是返回10035
      

  8.   

    clientsa.btAddr = 0; // 连接本机,connect时自动指定
    sa.sa.port = 20; //nSocketPort & 0xFF; 
    这样试试