#import "ViewController.h"
#import <sys/socket.h>
#import <netinet/in.h>
#import <arpa/inet.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
/**
参数解析
第 1个参数 domain 协议域(AF_INET,IPV4 网络开发) (IPV6 不需要管)
第 2个参数 type socket类型,SOCK_STREAM(TCP)/SOCK_DGRAM(UDP)
第 3个参数 protocol 协议,如果输 0,可以根据第 2 个参数, 自动选择协议
返回值:如果返回>0 则表 成功 */
int result = socket(AF_INET, SOCK_STREAM, 0);
if (result > 0) {
NSLog(@"创建成功%d",result);
}
/**
1. 第一个 socket
2. 服务器地址
*/
struct sockaddr_in serverAddress;
serverAddress.sin_addr.s_addr = inet_addr("127.0.0.1");
serverAddress.sin_port = htons(65535);
serverAddress.sin_family = AF_INET;
int connectResult = connect(result, (const struct sockaddr *)&serverAddress, sizeof(serverAddress));
if (connectResult == 0) {
NSLog(@"连接成功");
}
NSString *message = @"{'light':on}";
ssize_t sendResult = send(result, [message UTF8String], strlen([message UTF8String]), 0);
NSLog(@"%ld",sendResult);
uint8_t buff[5];
ssize_t recvResult = recv(result, buff, sizeof(buff), 0);
NSString *msg = [[NSString alloc]initWithBytes:buff length:recvResult encoding:NSUTF8StringEncoding];
NSLog(@"%@",msg);
close(result);
}
@end