Cocos网络访问

本文详细介绍了Cocos在OS X10环境下如何进行网络访问,包括涉及的软件如Cocos、Xcode、VS code和Apache。文章讨论了Apache的启动与停止命令,讲解了服务器、HTTP协议、URL、JSON数据格式以及数据库的概念。此外,还通过ping测试和创建PHP文件展示了网络连接的验证。最后,针对Cocos项目,提供了调整Info.plist以允许任意网络加载的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本文为作者原创,其中知识内容出自闪电终结者的视频课程

环境:OS X10

涉及软件

Cocos
Xcode
VS code
APACHE

在Mac中自带了php和APACHE

关于APACHE

打开终端
重启apache:sudo apachectl restart
关闭apache:sudo apachectl stop
开启apache:sudo apachectl start

网络知识

服务器:在电脑网路中,服务器为其他客户端来提供某一些服务
服务器接收客户端的请求,然后做一些处理在返还给客户端一些数据

任何电脑都能充当服务器

应用程序的数据
JSON (JavaScript Object Notation) 一种数据的打包形式

数据的建立
数据的拆建

在断网下也能访问到的,放在本地
客户的账号之类的放在服务器端

http协议, 进行网络请求,
URL(Uniform Resource Locator)地址使用服务器所在的网关的IP地址
通过http协议访问到这个网关地址中的某个php文件,
将得到的数据打包成php表单,发送给php脚本,从而获取到服务器上php脚本启动的返回值
得到返回值后,在吧数据进行解包,在本地使用

APACHE 服务器软件(能把电脑环境配置成为服务器
php脚本有一个御用数据库MySQL(Structured Query Language)
以这个语言为查询语言的数据库都叫SQL

数据库
客户端 -》 服务端 -》 数据库 -》 同一个服务器 -》 客户端

计算机网络
每个地方都有个ip地址,相当于门牌号
子网掩码,默认网关,DNS服务器

在同一个网段下的人可以互相访问,
比如255.255.255.0
八个1.八个1.八个1.0 1表示盖住0表示展开
只要前三个部分的数字相同,后面不管多少都表示属于同一个网段
(同个wifi下的设备一般都属于一个网段)

127 开头的,不可以在网络上使用,被作为故障排除debug的Ip
127.0.0.1 都代表自己

测试连接

打开命令行
ping + ip地址
当出现

64 bytes from 192.168.0.105: icmp_seq=0 ttl=64 time=0.046 ms
64 bytes from 192.168.0.105: icmp_seq=1 ttl=64 time=0.064 ms
64 bytes from 192.168.0.105: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 192.168.0.105: icmp_seq=3 ttl=64 time=0.072 ms

等类似字符时候,表示连接成功

创建一个text.html文件,输入代码(用编辑器打开):

<!DOCTYPE html>
<html>
    <head><meta charset="utf-8"></head>
    <body>
        <h1>这是一个大的标题</h1>
        <h2 style="font-color:#ff0000">这是一个小标题</h2>
    </body>
</html>

保存,任意打开一个浏览器,输入

127.0.0.1/text.html
// 或者 ip地址/text.html

在同个wifi下(同一个网段下)的其他电脑也是如此
连到一个wifi下一般就是在一个网段下

创建一个phptext.php文件,加入代码:

<?php
    for ($index = 1; $index < 5; $index++) {
        echo "<h$index>$index level titile</h$index>";
    }

在浏览器中打开方式如上

测试证明:
编译脚本php -> 当有客户端访问到这个文件时候,服务器会把脚本解码,变成文本数据,返回给需要请求的数据
html代码,直接文件然后解析

Cococ网络访问

// 通过访问地址,得到返回值在改label
        // 设置网络请求的一个对象(开始整理一个请求)
        auto *request = new cocos2d::network::HttpRequest;
        // 给对象设置url地址
        request -> setUrl("http://127.0.0.1/phptext.php"); // 必须把http://协议写上,但是cocos不支持http,这里需要改设置,下面会详细说
        // 设置网络请求类型,get仅仅得到数据,post是发送表单数据
        request -> setRequestType(cocos2d::network::HttpRequest::Type::GET);
        // 网络请求需要多线程,因为网络请求和网速有关,
        // 网络请求时候,对UI处理不受影响
        // 发送数据
        // ___________主线程______________>
        // ___网络请求__》 ———网络回执—————》
        //             请求数据
        // 把请求数据放在网络请求后,中间需要等待

        // 连接到 数据请求之后调用的方法
        // 第一个参数为网络请求的对象, 第二个参数为网络请求的回执,被打包成HttpResponse类型
        request -> setResponseCallback([](cocos2d::network::HttpClient* sender, cocos2d::network::HttpResponse* response) {
            // 网络请求是否正常返回数据
            if (!response -> isSucceed()) return;
            std::vector <char> *vec = response -> getResponseData();
            std::string str(vec -> begin(), vec -> end());
            cocos2d::log("读取:%s", str.c_str()); // 转成c语言字符串打印
            // std::cout << str;
        });
        // 找到cocos2d::network::HttpClient类的单例 -》 发送这个请求(把这个设置完的请求通过HttpClient唯一的对象发送出去)       
        cocos2d::network::HttpClient::getInstance() -> send(request);

这里写图片描述

找到ios下的Icons下的Info.plist文件

这里写图片描述

点加号,加一项 App Transport Security Settings
这里写图片描述

点加号,加一项Allow Arbitrary Loads
把右边的NO改为YES即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值