b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

iOS Socket通信学习(2)

电脑杂谈  发布时间:2018-02-08 07:13:40  来源:网络整理

客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以

保持,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

#import "ViewController.h"

socket_websocket_socket函数

#import

#import

#import

@interface ViewController()

@end

@implementationViewController{

int clientSocket;

}

- (void)viewDidLoad {

[superviewDidLoad];

[self createSocketIP:@"119.75.213.61" Port:@"80"];

NSString *request = @"GET /HTTP/1.1\r\n"

"Host: \r\n"

"Connection:keep-alive\r\n\r\n";

// "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko)Version/9.0 Mobile/13B143 Safari/601.1\r\n"

[self sendMessage:request];

[selfreceiveMessage];

[selfcloseConnection];

}

#pragma mark 创建Socket

-(BOOL)createSocketIP:(NSString*)ip Port:(NSString*)port{

//创建Socket

clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

//2 链接服务器

struct sockaddr_in add_r;

add_r.sin_family=AF_INET;//IPV4的地址

add_r.sin_addr.s_addr=inet_addr(ip.UTF8String);//IP地址

add_r.sin_port = htons([port integerValue]);//端口号

int result = connect(clientSocket, (const struct sockaddr*)&add_r, sizeof(add_r));

if (result !=0) {

//Socket链接成功

NSLog(@"Socket链接失败");

returnNO;

}

socket函数_websocket_socket

return YES;

}

#pragma mark 发送数据

-(void)sendMessage:(NSString*)msg{

//3、向服务器发送数据 返回时发送出去的字节数 失败-1

ssize_t count = send(clientSocket,msg.UTF8String,strlen(msg.UTF8String), 0);

if (count!=-1) {

NSLog(@"发送成功");

}

}

#pragma mark 接收数据

-(void)receiveMessage{

//4、接收服务器数据 返回值 接收的字节数

uint8_t buffer[1024];

ssize_t receiveCount = recv(clientSocket, buffer, sizeof(buffer), 0);


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66756-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...