日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

網絡通訊三要素

?


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.創建socket/**參數domain: 協議域,AF_INET -> IPV4type: Socket 類型,SOCK_STREAM/SOCK_DGRAMprotocol: IPPROTO_TCP,如果傳入0 那么會自動根據第二個參數選擇合適的協議返回值socket*/int clientSocket = socket(AF_INET, SOCK_STREAM, 0);//2.連接到服務器/**參數1> 客戶端socket2> 指向數據結構sockaddr的指針,其中包括目的端口和IP地址3> 結構體數據長度返回值0 成功/其他 錯誤代號*/struct sockaddr_in severAddr;severAddr.sin_family = AF_INET;//協議域//端口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.發送數據給服務器/**參數1> 客戶端socket2> 發送內容地址3> 發送內容長度4> 發送方式標志,一般為0返回值如果成功,則返回發送的字節數,失敗則返回SOCKET_ERROR*/NSString * sendMsg =@"Hello你好,約嘛";ssize_t sendLen = send(clientSocket, sendMsg.UTF8String, strlen(sendMsg.UTF8String), 0);NSLog(@"發送了%ld個字節",sendLen);//4.從服務器接受數據/**參數1> 客戶端socket2> 接收內容緩沖區地址3> 接收內容緩存區長度4> 接收方式,0表示阻塞,必須等待服務器返回數據返回值如果成功,則返回讀入的字節數,失敗則返回SOCKET_ERROR*/uint8_t buffer[1024];//要把空間準備出來! ssize_t recvLen = recv(clientSocket, buffer, sizeof(buffer), 0);NSLog(@"接收到了%ld個字節",recvLen);//5.關閉socket連接 close(clientSocket); }@end

?

轉載于:https://www.cnblogs.com/Free-Thinker/p/10437205.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。