iOS socket 套接字程式設計

2021-08-04 05:31:05 字數 1747 閱讀 3127

服務端:

#import "viewcontroller.h"

#import #import @inte***ce viewcontroller ()

@end

#define socket int

#define invalid_socket -1

#define socket_error -1

@implementation viewcontroller

- (void)viewdidload

struct sockaddr_in sockaddr;

//初始化位址資訊

sockaddr.sin_family = af_inet;

sockaddr.sin_port = htons(8000); //8000埠

sockaddr.sin_addr.s_addr = inaddr_any; //表示所有可用的位址

//繫結 socket

if (bind(socket_client,(struct sockaddr*)&sockaddr,sizeof(sockaddr)) == socket_error)

//監聽

if (listen(socket_client,5) == socket_error)

socket socket_server; //客戶端

struct sockaddr_in remoteaddr; //服務端位址

int addrlen = sizeof(remoteaddr);

char revdata[255];

while (true)

printf("連線成功");

//接收資料

int ret = recv(socket_server,revdata,sizeof(revdata),0);

if (ret > 0)

}close(socket_server); //關閉socket

}

客戶端:

#import "viewcontroller.h"

#import #import #import #define socket int

#define invalid_socket -1

@inte***ce viewcontroller ()

@end

@implementation viewcontroller

- (void)viewdidload

//初始化位址

struct sockaddr_in clientaddr;

clientaddr.sin_family = af_inet;

clientaddr.sin_port = htons(8000);

clientaddr.sin_addr.s_addr = inet_addr("192.168.4.107");

//迴圈連線

while (true)

printf("連線成功");

break;

}//傳送

if (send(socket_server,"上線了",sizeof("上線了"),0) < 0)

//關閉socket

close(socket_server);

// do any additional setup after loading the view, typically from a nib.

}

iOS Socket 程式設計

demo位址 tp,歡迎加qq群 489327143 首先還是先介紹一下理論知識。網路七層由下到上分別為物理層,資料鏈路層,網路層,傳輸層,會話層,表示層和應用層。各層作用如下圖 http協議,對應於應用層 tcp協議,對應於傳輸層 ip協議 對應於網路層 socket的工作流程 基於tcp的soc...

套接字程式設計

1 ipv4 通用套接字的位址結構 struct socketaddr2 ipv6 3 值 結果引數 有點迷糊 套接字位址結構大小作為乙個指標傳給核心的原因 當函式被核心呼叫時,大小結構是乙個值 value 告訴核心該結構的大小,核心在寫該結構時不會越界。當函式返回時,結構大小是乙個結果 resul...

套接字程式設計

例1 建立sockaddr in結構體變數,並繫結套接字 建立套接字 int serv sock socket af inet,sock stream,ipproto tcp 建立sockaddr in結構體變數 struct sockaddr in serv addr memset serv ad...