客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以
保持,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。
#import "ViewController.h"

#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;
}

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
是劣币驱逐良币
10万放余额宝里一年在3000左右利息
低智商