socket访问百度

@property(nonatomic,assign) int clientSocket;

@property (weak, nonatomic) IBOutlet UIWebView *webview;


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];


    

    //1.连接百度服务器 终端命令 ping www.baidu.com

    if([self connectToServerWithIP:@"61.135.169.125" port:80]){

        NSLog(@"连接成功");

    }

    

    //2.发送请求

    /*

     从浏览器监控得到的请求格式

     GET / HTTP/1.1

     Host: www.baidu.com

     Connection: keep-alive (可选)

     */

    

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

    "Host: www.baidu.com\r\n"

    "Connection: close\r\n\r\n";

    //keep-alive

    NSString *recvString = [self sendAndRecv:sentString];

//    NSLog(@"%@",recvString);

    

    //得到完整的响应,分离响应体

    NSRange range = [recvString rangeOfString:@"\r\n\r\n"];

    

    NSString *responseString = [recvString substringFromIndex:range.location+range.length];

    

//    NSLog(@"%@",responseString);

    //显示网页webview

    /*

     baseURL 指定基地址,用于给相对路径找打完整路径

     相对路径

     http://www.baidu.com/1/1.jpg

     1/1.jpg

     */

    [self.webview loadHTMLString:responseString baseURL:[NSURL URLWithString:@"http://www.baidu.com"]];

}


//连接服务器

-(BOOL)connectToServerWithIP:(NSString *)ipString port:(int)port{

    

    self.clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    struct sockaddr_in addr;

    //指定ipv4

    addr.sin_family = AF_INET;

    //端口号 高地位转换

    addr.sin_port = htons(port);

    

    addr.sin_addr.s_addr = inet_addr(ipString.UTF8String);

    

    int connResult =  connect(self.clientSocket, (const struct sockaddr *)&addr, sizeof(addr));

    

    if(connResult == 0){

        return YES;

    }else{

        return NO;

    }

}


//发送数据并接收数据

-(NSString *)sendAndRecv:(NSString *)message{

    //大集合,用于分批次接收百度服务器发送的数据

    NSMutableData *mData = [NSMutableData data];

    

    char *string = message.UTF8String;

    ssize_t sentLen = send(self.clientSocket, string, strlen(string), 0);

    

    char *buffer[1024];

    ssize_t recvLen = recv(self.clientSocket, buffer, sizeof(buffer), 0);


    //buffer转换成nsdata

    NSData *data = [NSData dataWithBytes:buffer length:recvLen];

    [mData appendData:data];

    

    while (recvLen!=0) {

        recvLen = recv(self.clientSocket, buffer, sizeof(buffer), 0);

        NSData *data = [NSData dataWithBytes:buffer length:recvLen];

        [mData appendData:data];

    }

    

    //大集合转换成NSString

    NSString *recvString = [[NSString alloc] initWithData:mData.copy encoding:NSUTF8StringEncoding];

    

    return recvString;

}


@end


2006NOIP普及组真题 4. 数列 从上述推理中,我们发现要输出的幂次和中的第 N 项(也就是幂次和中的序号N),对应的二进制位数和幂次和对应的二进制位数相同。当 k=3 时,k的幂次为1, 3, 9, 27, 81…,即第0位,第2位均为1,转成 k 进制(k=3)时。,即第2位,第3位均为1,转成 k 进制(k=3)时。转成 k 进制(k=3)时的幂次和为。,即第0位,第1位,第2位均为1,(即第0位,第1位,第2位均为1)N=12时,12的二进制是。(即第0位,第2位均为1)(即第2位,第3位均为1)结论:这道题就变成了。 阅读详情

相关推荐

构建个体结构脑网络的另一种方法

这篇文献提出了一种构建个体结构脑网络的方法即Morphometric INverse Divergence (MIND),通过T1像数据即可对每个被试构建一个脑网络,且通过多个特征进行构建而非单一的特征。即可获得由4个特征得到的个体结构网络矩阵,可以根据自己的需求采用不同的特征组合得到网络矩阵,也可以结合T1/T2像得到髓鞘化相关的网络矩阵,后续可修改代码批量处理自己的数据。这是文献贴出来的代码。在终端直接克隆到本地。2.修改路径运行代码。

weixin_52073820的博客 797

数据采集技术与数据清洗——使用Socket连接百度首页

1.了解Socket的作用及其包含的协议类型 2.掌握Socket中的3种函数及其作用 3.掌握使用Socket建立服务器端和客户端进行TCP通信,通过TCP通信从客户端发送请求并接受服务器端的响应

weixin_66547608的博客 1143

【GlobalMapper精品教程】038:模拟水位上升(洪水淹没分析)案例教程

基于数字高程模型 ( DEM )格网模型,实现给定水深情况下洪水淹没区的计算模型,讨论洪水淹没演进过程可视化实现的关键技术,以三维可视化方式,动态而形象地模拟在指定洪水水位下的洪水淹没演进过程。

智慧空间实验室 2821

socket爬虫

socket是我的认知中python比较底层的一种爬虫框架,话不多说代码搞起: URL = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1570852539907&di=636c22a4dfc8f820190b4625ad2e9db7&imgtype=0&amp...

Dzf_Ljy的博客 663

hbuilderx简单网页代码_Python使用socket读取网页源代码实现简单爬虫程序

清华科技大讲堂免费直播课预告:免费直播课|Python数据可视化与科学计算可视化案例分享,5月28日晚20:00-21:30============哔哩哔哩网站免费视频观看地址:董老师在哔哩哔哩网站免费分享的本学期“Python编程技术”讲课录屏视频,已更新到第11次课共27小时,观看地址:https://www.bilibili.com/video/BV137411u7tJ/推荐图书:...

weixin_39869378的博客 661

网络:请求本地服务器做法(socket

#import "ViewController.h" #import <sys/socket.h> // 没注释 #import <netinet/in.h> #import <arpa/inet.h> @interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *ipAdress; @property

CG-L 的技术博客 1050

Python基础学习之Socket_TCP服务端创建

TCP服务端 tcp服务器需要的流程如下: socket创建一个套接字 bind绑定ip和port listen使套接字变为可以被动链接 accept等待客户端的链接 recv/send接收发送数据 简单的tcp服务器样例如下: import socket # 创建套接字 tcp_server_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定信息 tcp_server_client.bind("", 7878)

qq_42539712的博客 388

socket 访问百度

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

ppppppppp2009的专栏 1463

网络:socket 访问百度

#import "ViewController.h" #import <sys/socket.h> // 没注释 #import <netinet/in.h> #import <arpa/inet.h> @interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *ipAdress; @property

CG-L 的技术博客 1686

iOS 使用Socket模拟手机访问百度

1. 连接百度服务器 // 1. 连接百度的服务器 BOOL result = [self connectIp:@"220.181.111.188" port:80]; if (!result) { NSLog(@"连接失败"); return; ...

weixin_34239169的博客 93

socket编程python 发送和接受http数据包_Python通过socket发送http请求

我们以访问百度主页为案例,使用socket发送http请求。import sockets=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('www.baidu.com',80))s.send('''GET https://www.baidu.com/ HTTP/1.1Host: www.baidu.comConnection: ...

weixin_39536010的博客 887

tcp客户端,实现与百度之间的通信

代码如下: #导入socket模块 import socket #1创建一个socket套接字 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #2connect 链接服务器,需要指定特定ip 和端口 baidu_id = "www.baidu.com"#百度 baido_port = 80 #端口80 tcp_...

zhangbiaoxiaoming的博客 1632

石杉笔记(3) tcp/Ip模型、tcp三次握手、四次挥手、socket编程原理、访问www.baidu.com请求的全部过程

1、tcp/ip 网络四层模型 四层模型:数据链路层(以太网协议),网络层(ip协议),传输层(tcp协议),应用层(http协议) 应用层: 应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层: 在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TC...

SmileTimLi的博客 529

socket_read的问题!!!!!---引用

 error_reporting(E_ALL); set_time_limit(0); $runtimes = 100; for ($i=0; $i {  $str = f_socket("www.baidu.com","/s?wd=10000" . $i);  echo "" . $str . ""; } function f_socket($website,$url) {  $service_

sunin918 2488

socket端口数据转发

socket端口数据转发

hfdgjhv的博客 4793

php socket

$fp = fsockopen("www.baidu.com",80,$errno,$errstr,30); if($fp) {     $out = "GET / HTTP/1.1\r\n";     $out .= "Host: www.baidu.com";     $out .= "Connection: Close\r\n\r\n";     fwrite($fp, $out)

robert198837的专栏 290

Python通过socket发送http请求

我们以访问百度主页为案例,使用socket发送http请求。 import socket s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('www.baidu.com',80)) s.send('''GET https://www.baidu.com/ HTTP/...

weixin_34184158的博客 756

python ssl socket_Python使用Socket(Https)Post登录百度的实现代码

登录百度,首先当然是先抓百度的登录包 ,由于是网页登录,最方便的自然是httpwatch了,我使用的测试账号是itiandatest1,密码是itianda,抓包结果:POST /?login HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, im...

weixin_33146151的博客 904

Java---net(网络编程)---TCP---模拟浏览器请求服务和模拟服务器响应浏览器请求

模拟浏览器向服务器发送请求通过 Java 的socket百度发送请求。import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.Socket; /** * 2018年5月12日 上午11:18:06 * @author &lt;a href="ma...

whale blog 1114

【转】 python socket百度发送http长连接请求 并做搜索

http://hi.baidu.com/leejun_2005/blog/item/30fe9bd23a396c28960a1640.html【转】 python socket百度发送http长连接请求 并做搜索2011-10-08 22:13转载自 冷子健最终编辑 leejun_2005 #coding=gbk'''socket百度发送http请求连接成功后,发送http的get请求,所搜...

weixin_34244102的博客 118
上一篇: http请求 get post
下一篇: JSON序列化
paulsi
博客等级 码龄11年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值