我會盡量詳盡。我正嘗試在我的應用程序中從我的iPhone連接到一個採集單元。我們使用IP4,並且採集單元不支持DHCP,因此它總是掃描具有特定靜態IP和端口號的設備。kCFSocketAcceptCallBack沒有被稱爲具有靜態IP的WIFI連接
之前我測試的單位和我的iPhone之間的連接,我用我的臺式機和嘗試與我的iPhone創建自組織網絡。這是我的代碼的一部分。
CFSocketContext CTX = { 0, description, NULL, NULL, NULL };
/* Create the server socket as a TCP IPv4 socket and set a callback */
/* for calls to the socket's lower-level accept() function */
TCPServer = CFSocketCreate(NULL, PF_INET, SOCK_STREAM, IPPROTO_TCP,
kCFSocketAcceptCallBack
, (CFSocketCallBack)WiFiCallBack, &CTX);
/* Set the port and address we want to listen on */
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
CFDataRef addressData = CFDataCreate(NULL, (UInt8*)(&addr), sizeof(struct sockaddr_in) );
CFSocketSetAddress(TCPServer, addressData);
它的工作,我可以做我的臺式機和iPhone之間的數據傳輸,如果我在被分配到iPhone到PC的應用程序我的桌面上的IP飼料。但是,如果我爲iPhone設置了一個靜態IP並嘗試讓PC應用程序連接到具有該IP的任何設備,則無法工作。
我的收購單位也一樣。回調函數根本不被調用。
我急需幫助,歡迎任何形式的幫助。謝謝。