日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

iOS进阶_Socket(Socket简介代码演练)

發(fā)布時間:2025/4/14 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS进阶_Socket(Socket简介代码演练) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

網(wǎng)絡(luò)通訊三要素

?


TCP & UDP

?


三次握手

?


斷開連接的四次握手

?


Socket套接字

?



?



了解了上面的概念,我們開始演練一下Socket

#import "ViewController.h" #import <sys/socket.h> #import <netinet/in.h> #import <arpa/inet.h>@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];[self socketDemo]; }#pragma mark - <socket演練> -(void)socketDemo{//1.創(chuàng)建socket/**參數(shù)domain: 協(xié)議域,AF_INET -> IPV4type: Socket 類型,SOCK_STREAM/SOCK_DGRAMprotocol: IPPROTO_TCP,如果傳入0 那么會自動根據(jù)第二個參數(shù)選擇合適的協(xié)議返回值socket*/int clientSocket = socket(AF_INET, SOCK_STREAM, 0);//2.連接到服務(wù)器/**參數(shù)1> 客戶端socket2> 指向數(shù)據(jù)結(jié)構(gòu)sockaddr的指針,其中包括目的端口和IP地址3> 結(jié)構(gòu)體數(shù)據(jù)長度返回值0 成功/其他 錯誤代號*/struct sockaddr_in severAddr;severAddr.sin_family = AF_INET;//協(xié)議域//端口severAddr.sin_port = htons(80);//地址severAddr.sin_addr.s_addr = inet_addr("127.0.0.1");int connResult = connect(clientSocket, (const struct sockaddr *)&severAddr, sizeof(severAddr));if (connResult == 0) {NSLog(@"連接成功!!");}else{NSLog(@"失敗了 %d",connResult);return;}//3.發(fā)送數(shù)據(jù)給服務(wù)器/**參數(shù)1> 客戶端socket2> 發(fā)送內(nèi)容地址3> 發(fā)送內(nèi)容長度4> 發(fā)送方式標(biāo)志,一般為0返回值如果成功,則返回發(fā)送的字節(jié)數(shù),失敗則返回SOCKET_ERROR*/NSString * sendMsg =@"Hello你好,約嘛";ssize_t sendLen = send(clientSocket, sendMsg.UTF8String, strlen(sendMsg.UTF8String), 0);NSLog(@"發(fā)送了%ld個字節(jié)",sendLen);//4.從服務(wù)器接受數(shù)據(jù)/**參數(shù)1> 客戶端socket2> 接收內(nèi)容緩沖區(qū)地址3> 接收內(nèi)容緩存區(qū)長度4> 接收方式,0表示阻塞,必須等待服務(wù)器返回數(shù)據(jù)返回值如果成功,則返回讀入的字節(jié)數(shù),失敗則返回SOCKET_ERROR*/uint8_t buffer[1024];//要把空間準(zhǔn)備出來! ssize_t recvLen = recv(clientSocket, buffer, sizeof(buffer), 0);NSLog(@"接收到了%ld個字節(jié)",recvLen);//5.關(guān)閉socket連接 close(clientSocket); }@end

?

轉(zhuǎn)載于:https://www.cnblogs.com/Free-Thinker/p/10437205.html

總結(jié)

以上是生活随笔為你收集整理的iOS进阶_Socket(Socket简介代码演练)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。