2010-03-02 17 views
5

Sto utilizzando TCP/IP su ActiveSync per connettermi dal dispositivo Windows CE al desktop di Windows XP. La funzione connect() di WinSock ha sempre esito positivo, indipendentemente dal fatto che l'applicazione server desktop sia effettivamente in esecuzione.Il socket connect() ha sempre esito positivo (TCP su ActiveSync)

Il seguente codice semplificato dimostra questo problema:

#include "stdafx.h" 
#include <Winsock2.h> 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    const int Port = 5555; 
    const char * HostName = "ppp_peer"; 

    WSADATA wsadata; 
    if (WSAStartup(MAKEWORD(1, 1), &wsadata) != 0) 
     return 1; 

    struct hostent * hp = gethostbyname(HostName); 
    if (hp == NULL) 
     return 1; 

    struct sockaddr_in sockaddr; 
    memset(&sockaddr, 0, sizeof(sockaddr)); 
    sockaddr.sin_family = AF_INET; 
    sockaddr.sin_addr.s_addr = ((struct in_addr *)(hp->h_addr))->s_addr; 
    sockaddr.sin_port = htons(Port);  

    int sock = socket(AF_INET, SOCK_STREAM, 0); 
    if (sock == SOCKET_ERROR) 
     return 1; 

    int result = connect(sock, (struct sockaddr*)&sockaddr, sizeof(sockaddr)); 
    // result always 0 (success) here 

    closesocket(sock); 

    return 0; 
} 

Si tratta di un bug? In caso contrario, qual è il modo corretto per determinare se il server è effettivamente online? Solo per provare ad usare la connessione stabilita (recv/send data)?

Dispositivo: Windows CE 5.0, WinSock 2.2; Desktop: Windows XP, SP3, ActiveSync 4.5.

risposta

0

Quindi, non ho trovato il modo per verificare se questo è il collegamento 'reale', diverso da quello di ignorare questo problema e cercare di utilizzare questa connessione. Se non è "reale", la comunicazione fallirà.

2

Da quello IIRC, c'è un bug in ActiveSync in quanto il WM 5.0 pensa sia ancora connesso al server ActiveSync sul pc desktop di Windows, vedere questa risposta qui su SO che potrebbe fornire un indizio e/o intuizione in questo e potrebbe spiegare il motivo per cui la presa di collegare sempre riesce ...

Problemi correlati