<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                從socket的創建開始說起(連接到京東。。。) 我們只要理解了各個參數,那么就學會了創建和連接 ~~~ //連接到京東 - (void)connection{ if ([self connectionToHost:@"111.13.28.23" port:80]) { // 發送數據 NSString *request = @"GET / HTTP/1.1\r\n" "Host:m.jd.com\r\n" "User-Agent:iPhone AppleWebKit\r\n" "Connection:Close\r\n\r\n"; NSString *result = [self sendAndRecv:request]; NSLog(@"接收到的內容result = %@",result); // 查找\r\n\r\n NSRange range = [result rangeOfString:@"\r\n\r\n"]; if (range.location != NSNotFound) { // 找到\r\n\r\n NSString *html = [result substringFromIndex:range.location]; NSLog(@"接收到的內容html = %@",html); [self.webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://m.jd.com"]]; } } } ~~~ **連接到服務器** ~~~ - (BOOL)connectionToHost:(NSString *)host port:(int)port{ // 創建客戶端socket /** 參數 domain: 協議域/協議族,AF_INET(IPV4的網絡開發) type: Socket 類型,SOCK_STREAM(TCP)/SOCK_DGRAM(UDP,報文) protocol: IPPROTO_TCP,協議,如果輸入0,可以根據第二個參數自動選擇協議 返回值 socket,如果>0 就表示成功 */ self.clientSocket = socket(AF_INET, SOCK_STREAM, 0); // 建立連接 /** 參數 1> 客戶端socket 2> 指向數據結構sockaddr的指針,其中包括目的端口和IP地址。即服務器的“結構體”地址 3> 結構體數據長度 返回值 0 成功/其他 錯誤代號,非0即真 */ struct sockaddr_in socketServer; // 1.協議---> 確定如何傳輸數據 socketServer.sin_family = AF_INET; // 2.ip --> 通過ip找主機 inet_addr內部對字符串也進行了字節翻轉(高低位互換) socketServer.sin_addr.s_addr = inet_addr(host.UTF8String); // 3.端口 ---> 通過端口找程序 htons:對整數進行高低位換號 socketServer.sin_port = htons(port); return (connect(self.clientSocket, (const struct sockaddr *)&socketServer, sizeof(socketServer)) == 0); } ~~~ **發送和接收** ~~~ - (NSString *)sendAndRecv:(NSString *)msg{ // 發送數據 /** 參數 1> 客戶端socket 2> 發送內容地址 void * == id 3> 發送內容長度,是指字節的長度。 4> 發送方式標志,一般為0 返回值 如果成功,則返回發送的字節數,失敗則返回SOCKET_ERROR */ ssize_t sendLength = send(self.clientSocket, msg.UTF8String, strlen(msg.UTF8String), 0); NSLog(@"發送了%ld字節,%zd--%zd",sendLength,msg.length,strlen(msg.UTF8String)); // 讀取數據 /* 參數1:客戶端的socket 參數2:接收內容的地址 參數3:接收內容的長度,告訴服務器一次只能接收多少字節的內容 參數4:接收方式標志,一般為0 表示阻塞式等待服務器響應 返回 — 接收的字節數 */ uint8_t buffer[1024]; NSMutableData *dataM = [NSMutableData data]; ssize_t recvLength = -1; while (recvLength != 0) { recvLength = recv(self.clientSocket, buffer, sizeof(buffer), 0); // 2000 80 NSLog(@"接收了%ld 字節",recvLength); [dataM appendBytes:buffer length:recvLength]; } NSString *resultStr = [[NSString alloc] initWithData:dataM encoding:NSUTF8StringEncoding]; return resultStr; } ~~~ **斷開連接** ~~~ - (void)disconnection{ // 斷開連接 close(self.clientSocket); } ~~~ 其實也不難 對吧 **效果:** ![Socket](https://box.kancloud.cn/2016-04-07_570611019701c.jpg "")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看