野人学Android基础篇之网络通讯第二课--本地apache服务器与Android的连接

写在开头

按照现在流行的说法,我只能算个野生程序员。没有上过专业的课,也没有受过专业的训练,当然也没有专业的工作背景,所以面对网络上传统的Android连接Apache Tomcat的方式,我是看不懂的,因为毕竟要涉及到JSP的知识。而我有php的开发经验,所以最开始想到的是利用php来编写服务器语言。一旦选择了php,那么就要放弃现成的Apache Tomcat服务器,去百度Apache连接Android的知识。

--------------------------------------------------分割线------------------------------------------

我的电脑上已经安装了Apache2.2.17,那么怎么将Android的app连接上本地Apache呢?我开始了第一次尝试。

1.按照百度到的知识,运行了"cmd",然后输入“ipconfig”,出现了如下的界面;


注:红圈内的ip就是本地电脑在局域网中的地址。

2.将获取到的ip传输到上一节课中写的程序中,如图;


注:红圈内的url地址是本地Apache服务器的一个地址,".../test/index.php"是我预先写好的php文件。

3.很遗憾,app没有启动成功,系统崩溃了,最后查找到的报错问题如下:


注:对于一个野生程序员来说,这个报错就好比天书,我完全看不懂。这时候只能求助度娘了,可是度娘上也只是说资源地址不对,顿时千万个草泥马在心里狂奔而过。

4.度娘虽然没有直接告诉我答案,但还是给了我一些蛛丝马迹。度娘告诉我,Android模拟器相当于一台设备,要想访问本地服务器,不能通过"localhost"或者"127.0.0.1"来访问,那么我就在想要想让Android模拟器访问到我的本地Apache,就相当于让一台在局域网中的设备访问到我的Apache服务器。于是找来朋友的电脑在局域网中测试,不管用localhost还是ip地址,都无法访问。然后查了很多资料,终于找到了方法,就是修改Apache的http.conf的内容,如下:


注:1.将"Deny from all"注释掉,其意思就是禁止其他设备的访问;2.这个ip地址是本地服务器的地址,当然你可以不写;3.因为本地局域网的地址是"192.168.1"开始的,而局域网中的设备只有最后一位ip不同,用"*"表示局域网中所有的设备均能访问本地服务器。


经过上面的探索,最后发现Android模拟器能返回Apache服务器中数据,顿时感觉好兴奋!只是在运行程序之前,要先检查下局域网的ip,在http.conf中进行修改。

-----------------------------------------分割线-----------------------

这是我写的第20篇博客,也是本系列的最后一篇。回头想想,2010年末学习php,2011年获得省级比赛三等奖,2012年读研中断了一年,2013年暑假在一家小网络公司实习,2014年参加与编程无关的工作,2015年开始学习Java和Android。我错过了网站的黄金发展期,后来又错过了移动app的黄金发展期。我本来可以安分守己,日复一日地工作,用时间换取未知的升职加薪的机会,但是我不甘于平庸,不想浪费年轻的资本,坚持学习了两个月。现在也算是将基础的知识学完了,剩下来想通过几个项目开发来增强开发经验,因为我知道只有实战才能磨练一个人的能力。

明天就是月饼节了,祝自己和家人,也祝将这篇博文看完的你,月饼节快乐!

好的,我会为您提供基础传教士与野人代码。以下是使用C语言编写的基础传教士与野人代码: #include <stdio.h> int main() { int boats = 1; // 初始化船只数量为1 int missionaries = 3; // 初始化传教士数量为3 int cannibals = 3; // 初始化野人数量为3 while (missionaries > 0 || cannibals > 0) { // 当还有传教士或野人时 printf("There are %d missionaries and %d cannibals on the starting side.\n", missionaries, cannibals); printf("There are %d missionaries and %d cannibals on the destination side.\n", 3-missionaries, 3-cannibals); int sent_missionaries, sent_cannibals; printf("How many missionaries do you want to send across? "); scanf("%d", &sent_missionaries); printf("How many cannibals do you want to send across? "); scanf("%d", &sent_cannibals); if (boats == 1 && (sent_missionaries > boats || sent_cannibals > boats)) { printf("You can only send one or two people on the boat.\n"); continue; } if ((missionaries-sent_missionaries) < (cannibals-sent_cannibals) && (missionaries-sent_missionaries) > 0) { printf("The missionaries will be eaten!\n"); continue; } boats = boats * -1; missionaries = missionaries - sent_missionaries * boats; cannibals = cannibals - sent_cannibals * boats; } printf("Congratulations! You have successfully brought all the missionaries and cannibals across the river!\n"); return 0; } 这段代码是一个简单的命令行程序,它模拟了基础传教士与野人问题。程序首先初始化了一艘船,三个传教士和三个野人。然后它进入一个循环,直到所有传教士和野人都被带到对岸。 在每次循环中,程序打印出当前岸上的传教士和野人数量,以及对岸的传教士和野人数量。然后,它要求用户输入要送过河的传教士和野人数量。如果输入的数量无效(超过船只数量、未能保持传教士数量不低于野人数量等),程序会要求用户重新输入。如果输入的数量有效,程序就将传教士和野人从当前岸送到对岸。 最后,程序输出祝贺信息,表示所有传教士和野人都被安全地送到了对岸。 希望这个代码可以对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值