两只脚底各有一块地方都跟火星表面温度被腐蚀...

脚很臭脚底还有很多小洞洞像被腐蚀一样用什么喷雾剂好?急需知道。_百度拇指医生
&&&普通咨询
?脚很臭脚底还有很多小洞洞像被腐蚀一样用什么喷雾剂好?急需知道。
拇指医生提醒您:医生建议仅供参考。
|科室:其他
献县中医院
你好,考虑是脚气,脚气是足部真菌感染,不及时控制会波及其他部位,治疗以外用抗真菌药物为主,患了脚气可考虑外抹些抗真菌的药物,可选择硝酸咪康唑软膏,用珊瑚癣净泡脚也行,平时应该穿透气性较好的鞋子,最好不穿皮鞋。
向医生提问
完善患者资料:*性别:
你的这情况考虑是脚气,建议使用达克宁治疗的,勤洗脚勤换鞋袜保持局部卫生干燥
病情分析:
这情况建议在烫脚水中加入白矾10–15克,
指导意见:
待白矾溶化水中后,...
你的看起来就是角质松解症,这个是与局部皮肤潮湿有关系的,不痛不痒没有水泡就不是脚...
你这个跟真菌感染导致的足癣有关系的。需要给与抗真菌的药物治疗
问题分析:
你好,根据你说的情况,我考虑是脚气,因为运动鞋鞋底不吸汗引起。
为您推荐:
* 百度拇指医生解答内容由公立医院医生提供,不代表百度立场。* 由于网上问答无法全面了解具体情况,回答仅供参考,如有必要建议您及时当面咨询医生认真读书,拿好成绩,上好大学,找好工作,去大公司。&br&&br&努力在公司奋斗30年,费尽力气往上爬,不乱花销,攒钱买房子,做投资。&br&&br&等到退休了,就是有钱人了。&br&&br&相信这个,并且为之付出200%的努力的,就是穷人思维。&br&&br&______________________________________________&br&12/10/2014 更新:&br&&br&我对题主的问题的理解是,&b&怎样的思维方式,会使人走向贫穷?或者只是平庸?&/b&&br&&br&很遗憾,这个答案会非常长,并不是我啰嗦,而是想要把我的看法准确的表达和分析出来,需要大量的篇幅。&br&&br&在真正进入主题之前,我想要澄清三点:&br&&br&1. 按照“穷人思维”去操作,不代表这个人现在或者将来一定会是穷人,&b&任何事情总有例外(我下面会解释这些例外)&/b&&br&&br&2. 有位朋友私信问我,也有朋友评论说,我的答案不就是社会最主流的做法么?&br&我的回答是:是的,这是社会主流的看法和做法,但是这个社会的主流都是些不那么有钱的人。&b&如果主流的人照主流的做法努力了那么多,最后还只是穷的话,为什么你要跟随这些主流的做法呢?&/b&&br&&br&&b&3. 我对贫穷的定义是,总资产少于2000万,没有财务自由。(如果你觉得一年赚二三十万就是土豪、有钱人,请你不要接着往下看,我们完全不在一个频道上)&/b&&br&&br&下面开始更新:&br&&br&如果我们把财务自由当做我们人生旅途的一个重要的目的地的话,我们有三条路径有可能可以到达目的地。(&b&如果你的追求里头不含财务自由的话,请不要接着往下看,我们完全不在一个频道上)&/b&&br&&br&第一条是人行道,第二条是慢车道,第三条是快车道。&br&&br&要分析这三条路径,我们需要考察以下几个方面&br&&br&&b&对债务的看法&/b&&br&&br&&br&&b&对时间的看法&/b&&br&&br&&br&&b&对教育的看法&/b&&br&&br&&br&&b&对金钱的看法&/b&&br&&br&&br&&b&主要收入来源&/b&&br&&br&&br&&b&主要财富增长来源&/b&&br&&br&&br&&b&对财富的看法&/b&&br&&br&&br&&b&财富的公式&/b&&br&&br&&br&&b&责任与控制&/b&&br&&br&&br&&b&对人生的看法&br&&/b&&br&&br&___________________________________&br&下面先说第一条路径: 人行道&br&&br&很遗憾,走这条道的人,永远都到不了目的地。&br&&br&打个比方,如果我今天住在成都(&b&我现在家里赤贫&/b&),我想要去北京(&b&实现财务自由,我不要再当穷人&/b&),然而我选择的方法是步行(&b&最愚蠢的办法&/b&),而且我不愿意改变我的路径(&b&我不愿更新我的想法,思路和自身&/b&)。&br&&br&那么我一定到不了目的地(&b&实现财务自由&/b&),无论我走的多快(哪怕&b&看起来赚了不少钱&/b&),走路姿势多么炫酷(&b&哪怕看起来过的也很炫酷&/b&)。&br&&br&上面的比方听起来很好笑,但是却是这个社会&b&超过50%的人对财富的追求方式&/b&。&br&&br&&b&对债务的看法 &/b&&br&债务是他们唯一用来即刻兑现幸福的手段&br&&br&&br&&b&对时间的看法 &/b&&br&时间是不值钱的,明天我说不定就会死,所以我今天就要把钱花完&br&&br&&br&&b&对教育的看法 &/b&&br&我毕业了,再也不用接受教育了!&br&&br&&br&&b&对金钱的看法 &/b&&br&每一分钱我都要花掉,活在当下!&br&&br&&br&&b&主要收入来源 &/b&&br&任何工作,只要付我钱&br&&br&&br&&b&主要财富增长来源 &/b&&br&无&br&&br&&br&&b&对财富的看法 &/b&&br&我买的每一样东西,都是我财富的代表&br&&br&&br&&b&财富的公式 &/b&&br&财富=收入+债务&br&&br&&br&&b&责任与控制 &/b&&br&不承担任何责任,我总是受害者。没有任何相应的控制&br&&br&&br&&b&对人生的看法 &/b&&br&我只活一次,我只年轻一次,要即时行乐&br&&br&走人行道的人最主要的一个思维,就是要即时兑现幸福,哪怕自己还并没有这个兑现的能力。简单说,就是,我喜欢这个车,哪怕贷款还不起也要买,我喜欢这条裙子,哪怕兜里只有8块,我一定要借钱买。&br&&br&走人行道的人,并不一定是收入很低,但却对财富没有基本的正确的观念。有些体育明星,还在打球的时候一年赚几千万美金,退役没几年就破产了。报纸上报道一些中了几个亿美金的人,没有过五年就家财散尽,流落街头。&br&&br&归根结底,是他们的支出总要超过他们的收入,因此他们一直要负债生活。而当某天,意外发生的时候,他们失去还债能力,只能破产收场。&br&&br&走人行道的人,距离破产,往往只差,&b&一张工资单,一次失业,一场大病,一次金融海啸,或者一次意外&/b&。&br&&br&走人行道的人们,总认为财富是一个单独的&b&事件&/b&,你需要&b&很幸运&/b&才能拥有财富(有个好爹,中彩票,别人送钱给他)。&br&&br&他们最大的误区,就是对财富没有控制,也不愿意承担责任和风险。他们信奉的及时行乐,会如同重力一样把他们拉向不可避免的深渊。&br&&br&&br&_____________________________________&br&这里再说第二条道路,也就是我最开始回答中提到的那条主流的道路,让我们重点分析下。&br&&br&这些开慢车道的人,相信,如果努力工作40年,节俭生活,以正确的方式投资,并不停的往上爬,到他退休的时候就能成为有钱人了。&br&&br&同样是那个比方,如果我今天住在成都(&b&我现在家里赤贫&/b&),我想要去北京(&b&实现财务自由,我不要再当穷人&/b&),然而我选择的方法是上慢车道(&b&最高时速10公里&/b&),而且我不愿意改变我的路径(&b&我不愿更新我的想法,思路和自身&/b&)。&br&&br&我唯一能做的,就是把加速踩到底(&b&不断的提升我的内在价值,让我的车速达到最高时速&/b&),那么这个过程可能要花40年(&b&如果我不提前死掉的话&/b&)。&br&&br&&b&对债务的看法 &/b&&br&债务是邪恶的,要用一切办法避免&br&&br&&br&&b&对时间的看法 &/b&&br&时间是用来换取金钱的&br&&br&&br&&b&对教育的看法 &/b&&br&教育的作用是可以提升内在价值,帮助我获得更高的薪水&br&&br&&br&&b&对金钱的看法 &/b&&br&每一分钱都要节省,都是血汗钱,绝对不能乱花&br&&br&&br&&b&主要收入来源 &/b&&br&工作&br&&br&&br&&b&主要财富增长来源 &/b&&br&投资性收入&br&&br&&br&&b&对财富的看法 &/b&&br&工作,存钱,投资&br&&br&&br&&b&财富的公式 &/b&&br&财富=工作收入+投资收入&br&&br&&br&&b&责任与控制 &/b&&br&有责任去养家糊口,但对自己的财富几乎没有任何控制&br&&br&&br&&b&对人生的看法 &/b&&br&我愿意现在过的苦逼,我要尽量避免风险,以后有一天,我会赚到足够的钱的&br&&br&走慢行道的人,信奉延迟的幸福。如果他喜欢一部车,会觉得,暂时不要买,要忍着。喜欢一条裙子,明明手里有一万,也要忍着,因为要拿这个钱去投资。往往这些人,没有过上梦想中的生活,还自我标榜非常节省,以此自豪。&br&&br&问题是,如果这么节省,又以2000万为目标,开慢车道,要多久才能抵达目的地呢?&br&&br&假如,我今年25岁,年收入&b&20万&/b&,除去缴税,房租,吃饭,送礼,养家,泡妞,赡养父母,我可以省下&b&5万一年(25%)&/b&。假设我的年收入每年以&b&3%的速度增长&/b&,每年的存款能获取&b&8%的年华收益&/b&。。&br&&br&假如这四十年,我&b&工作不停息,&/b&&b&我能一直在我的行业里头保持足够的竞争力,&/b&&b&不跳槽&/b&&b&,不买房,不生病,不被炒鱿鱼,不娶老婆,&/b&&b&我不养孩子&/b&,&b&不发生意外,&/b&我会在&b&65岁&/b&时,拥有1846万(数学公式我就省略了)&br&&br&哦,不过我忘了说,因为通胀,我65岁的时候,那些钱可能只有现在&b&400万的购买力&/b&。&br&&br&&b&各位看官,请问,你觉得这个前景很吸引你么?&/b&&br&&br&&br&请问,你现在有&b&20万一年&/b&么?&br&请问,你&b&能保证&/b&你能存下你25%的收入么?&b&持续40年如一日么&/b&?&br&请问,你&b&能保证&/b&你薪资每年稳定增长么?&br&请问,你&b&能保证&/b&你不被炒鱿鱼,并一直在你的行业里头保持足够的竞争力么?&br&请问,你&b&能保证&/b&年化收益率8%么?&br&请问,你&b&能保证&/b&隔几年来一回的金融海啸不伤害你几十年的积蓄么?&br&请问,你&b&能保证&/b&不买房,不发生意外,没有额外的大花销么?&br&请问,你&b&能不娶老婆,不养孩子么&/b&?&br&请问,你&b&能保证&/b&,你不生病,能无痛无患一定活到65岁么?&br&&br&就算你对以上所有的问题说是,再请问,&b&在65岁,拥有将近2000万的巨款,你已经垂垂老矣,连半夜上洗手间都可能摔得骨折,你准备怎么挥霍你的劳动果实呢?&/b&&br&&br&对于开慢车道的人,有一个最最重要的公式:&br&&br&&b&工作收入=每小时时薪 * 工作时长&/b&&br&&br&然而,你不能控制自己的时薪,因为那个是&b&由市场决定的&/b&。你再怎么需要钱,你也不能跟老板说,来,今年给我200%的涨薪。&br&&br&同时,你也不能用杠杆调节自己的工作时长,你一天&b&就只有24小时。&/b&&br&&br&&b&你既没有控制,也不能利用杠杆,那么你的收入就是有限的。当你的收入有限时,你所能存下来的钱就有限,那么你能拿去投资的钱就更为有限。&br&&/b&&br&而且, 投资收入=投资资本*(1+收益率)&br&&br&Again, 你不能控制你投资的收益。你再怎么需要钱,你也不能跟市场说,来,今年给我200%的收益率。&br&&br&当然,你也不能利用杠杆来调节你的投资资本。你敢跟市场说,请给我100倍的杠杆撬动我的资金么?(专业期货交易员就别跟我抬杠了啊,1000个做有杠杆交易的,可能只有2个能稳定盈利)&br&&br&&b&如果你的工作收入和投资收入都是有限的,那你的财富的增长的速度就是有限的。慢车道的局限就是有限速,你再怎么踩油门,你都不能用杠杆调节你每天的工作时长到超过24小时,不能用杠杆调节你的投资资本到原有的100倍。你也不能控制自己的薪水,或者是投资的收益。&/b&&br&&br&然而慢车道,有几种例外。&br&&br&第一,名气,当你的名气到了一定的程度,你被百万人需要的时候,你就打破了慢车道的规矩。例子就是影星,歌星,比如范爷,虽然她赚的也还是时薪,但是她的杠杆和控制都是无限的。&br&&br&第二,技能,当你的技能到了行人止步的程度,你就可以获得非常可观的时薪,虽然你没有对杠杆的控制。例子就是运动员,梅西,字母罗,詹姆斯,科比,他们的运动技巧是常人不能比拟的,所以虽然他们的杠杆有限,他们的时薪是可以自己控制的。&br&&br&第三,就是人们常说的,当上CEO或者公司管理层。但是往上爬所要花费的艰辛和努力,实在是太苦了。很多ceo,爬到那个位置,怎么样都要花个20几年,那本质上和慢车道也没啥区别了。&br&&br&————————————————————————————&br&下面说第三种,快车道&br&&br&哦,不好意思,各位,从一开始,我就没准备写第三种,(不是我不愿意写,而是题目就仅仅问了穷人思维,而且实在有点长&br&&br&去读读MJ DeMacro的&The Millionaire Fastlane&,作者比我说的好一万倍。&br&&br&要是说的不对,还请多指教。&br&&br&——————————————————————————————————&br&2/9/2015 更新:&br&&br&哎,谢谢很多朋友的反馈和私信,和大家交流我也能学会很多。有的朋友真的是一点就透。&br&&br&跟大家着重说一下这本书吧,《the millionaire fastlane》这本书主要侧重的是对思维方式的培养,这本书传达的是一个正确的思维方式。&br&&br&一个正确的思维是你正确做法的基础指导,但是不等于,&b&今天我告诉你正确的思维,你明天就能暴富&/b&。&br&&br&就好像,我告诉你,你要好好学习,你就能读好大学。&b&道理很简单,大家都懂,但是你能不能付出努力,能不能为之奋斗,是你自己的事情。&/b&&br&&br&&b&送大家一句话:&/b&&br&&b&上士闻道,勤能行之。中士闻道,若存若亡。下士闻道,大笑之。&/b&&br&&br&如果有些朋友愿意跟我交流,愿意跟我成为朋友,那就太好了。如果我的文章,我推荐的书,能给大家一点点的启发,那更是再好不过了。&br&&br&很多朋友没有看书已经能迅速推理出来快车道是什么了,你们都说的很对,唯一能让你兼备控制和杠杆的道路,就是创业了。&br&&br&有些朋友已经告诉我书看完了,还有没有别的书推荐,我会在这里放一个书单,不定期更新:&br&&br&The Lean Startup&br&Zero to One&br&The E-myth&br&&br&(第一次知道原来收藏是可以比赞多的)
认真读书,拿好成绩,上好大学,找好工作,去大公司。 努力在公司奋斗30年,费尽力气往上爬,不乱花销,攒钱买房子,做投资。 等到退休了,就是有钱人了。 相信这个,并且为之付出200%的努力的,就是穷人思维。 __________________________________________…
关注这个问题好久,终于腾出时间来回答了!!!&br&前方高能,前方高能,前方高能!!!重要的事情说三遍。18岁以下请慎重欣赏,公共场合请戴耳机,外放引起他人异样眼神后果自负!!!&br&
以前在虾米音乐收藏过一个精选集叫《两腿之间,通往的是天堂》,里面50首歌听着都能高潮,捂脸捂脸。&br&&blockquote&
1.《&a href=&///?target=http%3A///song/%3Fspm%3Da1z1s..0.eWgL4m& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Bitch (Peitsche Mix)&i class=&icon-external&&&/i&&/a&》演唱者 Finger & Kadel。歌曲讲述的是一次愉快的性爱之旅,里面有大段女声高潮时的呻吟叫床声。听起来极度迷醉。一定要自己戴着耳机听,千万不要在公众场合播放此歌曲。贴一贴歌词&br&
Wanna be your bitch tonight&br&
Wanna be wanna be your bitch&br&
[6x]&br&&br&
Bitch [?x]&br&&br&
I wanna be your bitch&br&&br&
I wanna be your bitch tonight&br&&br&
Bitch [8x]&br&&br&
Ich liebe die Natur&br&
Und gehe oft spazieren&br&
Dann streichel ich die Pferde&br&
Und bin auch gut zu v?geln&br&&br&
Aaahhh... [?x]&br&&br&
Bitch [16x]&br&&br& I wanna be your bitch tonight&br&&br& Bitch [8x]&br&&br& Wanna be your bitch tonight&br& Wanna be wanna be your bitch&br& [2x]&br&&br& Bitch [?x]&br&&br& Wanna be your bitch tonight&br& Wanna be wanna be your bitch&br&&br& Wanna be your bitch tonight&br& Wanna be wanna be your bitch&br&&br&
Aaahhh... [?x] &br&
简单粗暴,情欲味道十足&br&
2.电影《迷恋荷尔蒙》插曲《&a class=& wrap external& href=&///?target=http%3A///1000005/sound/923213& target=&_blank& rel=&nofollow noreferrer&&#1 Crush&i class=&icon-external&&&/i&&/a&》,演唱者&a class=& wrap external& href=&///?target=http%3A///artist%3Fid%3D93189& target=&_blank& rel=&nofollow noreferrer&&Garbage&i class=&icon-external&&&/i&&/a&。网易慵懒的女声唱了一个寂寞男女深夜碰撞的故事,背景音乐有大段的叫床声。&br&
3.《 &a href=&///?target=http%3A///song/Fspm%3Da1z1s..nltHYY& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Home Shopping&i class=&icon-external&&&/i&&/a&》演唱者&a href=&///?target=http%3A///artist/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hexstatic&i class=&icon-external&&&/i&&/a&,此曲目节操碎尽,背景是一对男女在激烈地啪啪啪,可以清晰地听到他们的每一声沉重的呼吸,不建议单身人员听,听得时候一定要确保四下无人。&br&
4.《 &a href=&///?target=http%3A///song/Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& G.T. Road &i class=&icon-external&&&/i&&/a&》作者-
&a href=&///?target=http%3A///artist/22605%3Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Clinton&i class=&icon-external&&&/i&&/a&,这是一段纯音乐,节奏激烈欢快,深进浅出,有啪啪啪的碰撞声,还有咚咚咚的摇床声,女主角高低起伏的呻吟声也令人陶醉。这首推荐啪啪啪时播放,极有情调。&br&5《&a class=& wrap external& href=&///?target=http%3A///1000005/sound/923215& target=&_blank& rel=&nofollow noreferrer&&A Moment in Valhallal&i class=&icon-external&&&/i&&/a&》,大概讲述了一个男性征服心爱的女人在胯下的故事。男性极有力量的歌声和女性极其迷醉的叫床声,听起来荷尔蒙飙升,充满征服和情欲的味道。&br&6。《&a class=& wrap external& href=&///?target=http%3A///1000005/sound/923216& target=&_blank& rel=&nofollow noreferrer&&Ain't That Saint&i class=&icon-external&&&/i&&/a&》,重金属歌曲,充满野性与欲望的一首歌,很有肾上腺素的的味道。建议戴耳机听。&br&7.《&a class=& wrap external& href=&///?target=http%3A///1000005/sound/923219& target=&_blank& rel=&nofollow noreferrer&&Blue Pills&i class=&icon-external&&&/i&&/a&》,纯音乐,一开始节奏缓慢流淌,慢慢地节奏紧凑激烈,接着走上高潮,最后停止。讲的是什么事情,大家都懂~&br&8.《&a href=&///?target=http%3A///song/Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Orgasm &i class=&icon-external&&&/i&&/a&》演唱者&a href=&///?target=http%3A///artist/10441%3Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Prince&i class=&icon-external&&&/i&&/a&,贴一贴歌词&br&Come on&/blockquote&过来吧&br&Come on&br&来我这&br&Don't be shy, it's only U and I&br&别害羞了,这里只有我和你&br&Isn't that what U want?&br&这不正是你内心极度渴望的吗?&br&Oh yeah&br&噢, 就是这种感觉&br&Oh here I come&br&噢, 我进来了&br&Come on then&br&那就来吧&br&Keep going&br&继续用力&br&Keep going&br&别停下来&br&Oh yeah&br&噢, 感觉不错吧&br&Keep going&br&接着享受吧&br&Yeah&br&好啊&br&Here I, here I, here I come&br&我在这里,我在这里,我来了&br&(come with me)&br&和我一起&br&Now&br&现在&br&Come&br&来吧&br&Imagine what U look like from across the room&br&想象一下,你的灵魂穿越在房间里&br&u're almost there&br&你就快到达天堂了&br&Come&br&来吧&br&Oh yeah&br&就是这样&br&I love U&br&&blockquote&我爱着你呢&br&听起来是一场性爱从开始到高潮的故事,此起彼伏的呻吟和男性厚重低沉的喘息极富情欲味道,最后高潮的海浪声,推向顶峰。&br&9《&a href=&///?target=http%3A///song/Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Pause 4 Porno &i class=&icon-external&&&/i&&/a& -》作者&a href=&///?target=http%3A///search/find%3Fspm%3Da1z1s..QM2bGi%26artist%3DDr.%2BDre& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Dr. Dre&i class=&icon-external&&&/i&&/a&;&a href=&///?target=http%3A///search/find%3Fspm%3Da1z1s..QM2bGi%26artist%3DJake%2BSteed& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Jake Steed&i class=&icon-external&&&/i&&/a&,这首歌没有找到歌词,以我拙劣的英语水平听来,是一个嫖娼故事。男女主角都玩得尽兴。尺度极大,千万不要外放,记住!!!&br&10《&a href=&///?target=http%3A///song/%3Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&遗憾不说___? &i class=&icon-external&&&/i&&/a& -》作者 &a href=&///?target=http%3A///artist/60480%3Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Armand Tanzarian&i class=&icon-external&&&/i&&/a&。整首曲子就是简单粗暴地啪啪啪,而且比前几首更有进步的是听到口交声。&br&11《&a href=&///?target=http%3A///song/Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Fuck Frankie &i class=&icon-external&&&/i&&/a&》作者&a href=&///?target=http%3A///artist/10337%3Fspm%3Da1z1s..QM2bGi& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Marilyn Manson&i class=&icon-external&&&/i&&/a&,此音乐绝壁不输AV背景&br&先写这些,有人听我就再更&/blockquote&——————————分割线————————&br&反响热烈,再更新几首,所有曲目都贴了链接,直接点进去就可以听,说找不到的小伙伴只能帮你们到这里了。&br&12。《&a href=&///?target=http%3A///song/%3Fspm%3Da1z1s..nltHYY& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Lesbian &i class=&icon-external&&&/i&&/a&》,日语歌曲,比欧美歌曲娇柔的多,吐血推荐这首。&br&13。《L'amour》演唱者 ,Carla Bruni,法语歌曲,歌声缠绵流转。个人非常喜欢这首歌曲,适合微醺时一个人听。&br&14.《&a href=&///?target=http%3A///song/2020821& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Bedtime &i class=&icon-external&&&/i&&/a&》,演唱者&a href=&///?target=http%3A///artist/15110& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Usher&i class=&icon-external&&&/i&&/a&。&I just want you so much. Can I have you baby, do you hear me baby?”,听起来有些许伤感。&br&15.《&a href=&///?target=http%3A///song/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sexin' On You &i class=&icon-external&&&/i&&/a& --
&a href=&///?target=http%3A///artist/40038& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&One Chance&i class=&icon-external&&&/i&&/a&》。All I wanna do is sex on you ,I act all crazy girl when I get inside of you. ,经常在酒吧听到的歌曲。&br&16《&a class=& wrap external& href=&///?target=http%3A///1000005/sound/923241& target=&_blank& rel=&nofollow noreferrer&&Sex (I'm A)&i class=&icon-external&&&/i&&/a&》,一首众所周知的歌曲。两个人缠绵的耳语和声声娇喘,适合在两个人一起听。&br&17.《&a href=&///?target=http%3A///song/Fspm%3Da1z1s..FvqtRO& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Signs of Love Makin' &i class=&icon-external&&&/i&&/a& --
&a href=&///?target=http%3A///artist/15109%3Fspm%3Da1z1s..FvqtRO& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tyrese&i class=&icon-external&&&/i&&/a&》,个人比较喜欢的一首歌。&br&18.《&a href=&///?target=http%3A///song/Fspm%3Da1z1s..FvqtRO& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Make It Last Forever &i class=&icon-external&&&/i&&/a& --
&a href=&///?target=http%3A///artist/15105%3Fspm%3Da1z1s..FvqtRO& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Keith Sweat&i class=&icon-external&&&/i&&/a&》,也是一首很好听的歌。&br&19.《&a href=&///?target=http%3A///song/%3Fspm%3Da1z1s..FvqtRO& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Favor &i class=&icon-external&&&/i&&/a& -- &a href=&///?target=http%3A///search/find%3Fspm%3Da1z1s..FvqtRO%26artist%3DLonny%2BBereal& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Lonny Bereal&i class=&icon-external&&&/i&&/a&;&a href=&///?target=http%3A///search/find%3Fspm%3Da1z1s..FvqtRO%26artist%3DKelly%2BRowland& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Kelly Rowland&i class=&icon-external&&&/i&&/a&》&br&20.《&a href=&///?target=http%3A///song/Fspm%3Da1z1s.UPHv& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TheHorn&i class=&icon-external&&&/i&&/a&》,这首歌尺度太大,不解释了。
关注这个问题好久,终于腾出时间来回答了!!! 前方高能,前方高能,前方高能!!!重要的事情说三遍。18岁以下请慎重欣赏,公共场合请戴耳机,外放引起他人异样眼神后果自负!!! 以前在虾米音乐收藏过一个精选集叫《两腿之间,通往的是天堂》,里面50首…
&a data-hash=&7af4af00baf3d41ea805dfa& href=&///people/7af4af00baf3d41ea805dfa& class=&member_mention& data-hovercard=&p$b$7af4af00baf3d41ea805dfa&&@guuuo viii&/a& 既然邀请了,就来匿名回答一个。&br&&br&我是哈佛神学院的毕业生。美国的神学院分为两种:独立神学院,和像哈佛或耶鲁神学院这种综合性大学里面的神学院。前者像洛杉矶的Fuller,麻省的Gordon-Conwell,后者比较有名的除了上面说的两所,还有芝加哥大学神学院等。&br&&br&这些学校都提供Master of Divinity的学位。在美国,这个学位是做牧师的必要学位。正常情况下牧师需要在获得本科文凭之后,先进行三年的M.Div学习,拿到学位后进入所属教派进行按立前的训练和学习(这个过程叫做ordination track,可长可短,比如卫斯理总我记得是五年),然后才能在这个教派里按立做牧师。&br&&br&综合性大学的神学院一般会提供三种学位:M. Div,这是为了准备未来做神职人员的学生准备的,一般是三年;一般硕士学位,这个学位各个学校叫法不一样,比如哈佛叫Master of Theological Studies, 耶鲁叫Master of Arts in Religion;神学博士学位,一般叫做Doctor of Theology。很多学校还有其他比较小的专门项目,比如说哈佛有一个专门培养有志于从事宗教教育的项目。&br&&br&课程方面,M.Div因为是职业教育,所以分理论和实践两个部分。理论课必修的主要是旧约,新约,教会史等等,实践课有包括布道,教会音乐,心理辅导,等等等等。我印象最深刻的是布道课上老师会把每个学生的布道过程录影,然后一对一的讲解和纠正语音语调,肢体动作等,第一次看到自己布道的录像,唉,不提也罢......除此之外,M.Div有实习要求,需要获得一定的实习学分才可以毕业。&br&&br&其他的课是M.Div和MTS一起上的(上面提到的课一般理论课也会有MTS的学生选,实践那些基本上就都是M.Div小班上课了)。在综合性大学里面,这些课的范围就很宽泛,比如宗教社会学,宗教人类学,国际冲突(因为很多都是宗教原因造成的嘛),也不局限于基督教,会有伊斯兰教,佛教,印度教等等的相关课程。有些课是跟肯尼迪学院合开的,佛教等课程经常是跟东亚系合开的。&br&&br&要说学院的定位, MTS这种就是给对宗教有兴趣的学生开的,我记得当年碰到过一个从Morgan Stanley退休了的大爷,为了丰富退休生活就来念这个学位。毕业以后有些人很想做学术,就继续念ThD,有些人就直接去做毫不相关的工作了。M.Div是给准备做牧师的学生准备的,但是也不是念了都去做牧师(比如我自己......),另外,综合性大学的M.Div有时候某些教派不承认,比如美国很多教派会觉得哈佛太liberal,所以不承认哈佛的M.Div,我当年有一个同学念完了哈佛的学位以后又去某个和教派相关的神学院念了一个同样的学位才得以开始按立程序。&br&&br&从911以来综合性大学的神学院课程也顺应潮流发生了很多变化,最明显的就是多了许多与伊斯兰教相关的教职,相应的伊斯兰教课也多了起来。哈佛的神学院甚至在M.Div这个项目里也有信伊斯兰教或佛教的学生......而那些独立的神学院,因为一般和某些教派关系比较紧密(比如Gordon-Conwell就是福音派的),所以和综合性大学的神学院相比就会显得越来越保守。
既然邀请了,就来匿名回答一个。 我是哈佛神学院的毕业生。美国的神学院分为两种:独立神学院,和像哈佛或耶鲁神学院这种综合性大学里面的神学院。前者像洛杉矶的Fuller,麻省的Gordon-Conwell,后者比较有名的除了上面说的两所,还有芝加哥大…
《和巴什尔跳华尔兹》确实是比较经典的动画纪录片,也是常被拿来举例子的作品。&br&实际上现在的好多纪录片都用到了动画元素。包括一些国产纪录片在展现宏大场景时都是用动画来完成的。&br&&br&比较经典的动画纪录片还有:《路西坦尼亚号的沉没》,作者是美国早期的动画大师Winsor McCay。&br&另外,Norman Mclaren的真人动画(pixilation)《邻居》获得了奥斯卡——最佳纪录片奖……&br&但其实它并不是纪录片,而只是讲述了一个完全虚构的小故事。&br&&br&&a href=&///?target=http%3A///link%3Furl%3DYXmykI1LSA-W3tlzqoa1fPbrpLSnB6rvsr2AsdIn_fHb1F8MpMY-r3xtm_NbarjkUkcTAR9oRFb_7XiA3mKxoLCKDuC6Tn_mgGF70bma1Z3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&动画纪录片_一种值得关注的纪录片类型&i class=&icon-external&&&/i&&/a&&br&这篇文章有一些简单的介绍。&br&&br&关于“动画纪录片”的合法性,有一些学者提出过自己的见解。&br&最有名的应属聂欣如。他为此写过好几篇文章。例如下面这两篇:&br&&a href=&///?target=http%3A//.cn/s/blog_7cacht.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&“动画纪录片”有史吗&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A//.cn/s/blog_7caug5t.html%23comment1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&再谈动画不能成为纪录片&i class=&icon-external&&&/i&&/a&&br&从题目就能看出,他是不承认其合法性的。&br&不过他的观点我并不认同。因为他仅仅是否定了他所举的几个例子不是纪录片(主要是《巴什尔》和《路西坦尼亚》),却没能从本质上推翻动画纪录片这一概念。&br&&br&对了,薛燕平老师正在制作的《蝉噪林逾静》也是动画纪录片。&br&而且是既以动画为主题的、又以动画为表现形式的动画纪录片。&br&里面使用了类似转描的技术。&br&不过,并不是转描的手法决定它是一部纪录片。&br&是&b&&u&试图还原事件的态度&/u&&/b&决定的——这也是我对动画纪录片合法性的解释。&br&&br&当然,这个问题目前还没有定论。&br&我会在今后的研究中写这方面的内容哈。
《和巴什尔跳华尔兹》确实是比较经典的动画纪录片,也是常被拿来举例子的作品。 实际上现在的好多纪录片都用到了动画元素。包括一些国产纪录片在展现宏大场景时都是用动画来完成的。 比较经典的动画纪录片还有:《路西坦尼亚号的沉没》,作者是美国早期的动…
题主想要完成这个任务,需要一些条件啦:首先你网速够好,其次你英文够好。上外网不卡,英文听力不错。一个月不干别的事情差不多可以上手iOS App或者Html5 Web App开发。能做个作业,可以跟小白炫耀一下。&br&需要的工具:互联网、翻墙软件、电脑一台(iOS 需要mac 虚拟机黑苹果都行)、谷歌、&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&、w3cschool。&br&&br&&b&时间分配:&/b&12天基础,18天实践。以六天为一周,那么你的一个月就有五个周,而不是四个。前两周搞定基础,后三周完成作业&br&&br&&b&基础部分:&/b&&br&第一周:在&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&上搜索并学习 Foundations of Programming: Fundamentals,Foundations of Programming: Object-Oriented Design
看完这两个教程,算是入了个门,什么variable class function method 之类的就看懂了明白是怎么回事儿了。 同时以这六天的进度评估现在的接受能力,如果这六天觉得很轻松没问题,并可以写一些小的代码,可以挑战iOS的开发,如果这六天觉得比较吃力,而且第二个Object-Oriented Design中的概念很难理解,建议转向Html5 Mobile App开发。&br&&br&&br&第二周:根据第一周的评估又分为两个方向&br&方向A:iOS开发:学习语言和工具:xcode 以及 swift或者Object-C&br&在&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&上搜索并学习&br&项目1[Objective-C Essential Training 或者 Swift Essential Training]&br&项目2 [App Development Essential Training或者App Development with Swift Essential Training ]&br&项目3[ iOS Game Development with Sprite Kit]&br&语言的选择上看喜好,Object-C发展的比较完善,资料也很多,swift是新兴的,热门,但各种学习的资料的介绍中也有不少错误。任何不懂的地方请用谷歌进行英文搜索,比百度有效率太多。&br&本周没有完成以上三个项目的学习,则任务失败。你要有兴趣可以继续看下去,但一个月之内的作业是肯定完不成了。&br&&br&方向B:Html5 Mobile App:学习HTML,CSS,Javascript&br&项目1 w3cschool上学习HTML HTML5 CSS CSS3 &br&项目2 &a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&上学习 JavaScript Essential Training &br&项目3 &a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&上学习 Building Android and iOS Apps with Dreamweaver CC and PhoneGap&br&本周没有完成以上三个项目的学习,则任务失败。但比起方向A来说,这个方向还是相对好完成一些的。&br&在基础部分的学习中,还有一个小技巧提升学习速度——将播放器的播放速度提高至1.1-1.2倍,长期这样可以节约很多时间。&br&&br&&br&&b&实战部分&/b&&br&第三至五周&br&做作业——遇到问题——解决问题——继续做作业。&br&大概这三周的时间内会遇到各种各样的问题,但通过前两周的学习应该基本获得了解决问题的各种方法。关注遇到的问题,和如何解决这个问题。所有其他的复杂的概念请在解决了问题、完成任务之后再研究。 &br&你可能会遇到如何在存储用户的资料,联网游戏或者应用还需要一个服务器,调用手机的摄像头、震动等功能、等等等等。先明确目的,然后通过搜索引擎(谷歌更为高效),论坛交流来尝试解决这些问题。&br&以实现功能为主要目标,解决问题,并做好笔记,会让你快速的完成任务。&br&你会遇到很多的库、框架、IDE、协议并且看到许多程序员为此争执。我的建议是跟这些保持一定的距离。在国内的论坛或者QQ群,总会有一些也是刚起步的朋友拿这些吓唬人。国外的社区环境还是相当不错的。&br&对于有些不能给你提供任何帮助而对你横加指责,或是好心却把事情变的更加的复杂化的人,我建议感谢他们,但仍然按照自己的目标走。向着目标,别走弯路。
题主想要完成这个任务,需要一些条件啦:首先你网速够好,其次你英文够好。上外网不卡,英文听力不错。一个月不干别的事情差不多可以上手iOS App或者Html5 Web App开发。能做个作业,可以跟小白炫耀一下。 需要的工具:互联网、翻墙软件、电脑一台(iOS 需…
多图,注意流量.&br&--------------------------------&br&买几本好书,坐电脑前不停的写,废寝忘食的写,编程是世界上最容易的事,你还不用碰底层,先学学基本流程控制和调用API,然后理解下分层思想,这就能写脚本了,然后有兴趣有时间就研究底层,没兴趣就弄好一门语言,专心写脚本开发好app,难度方面你可以放心,是个人就能学会,学不会是不可能的。&br&你要用java就研究好面向对象,一个月有点短但要是全力投入也不是不可能。&br&你知道自己学,这可比那些就差一个程序员的强太多了。&br&祝你成功,有问题可以私信我。&br&---------------------------------------------------------------&br&&b&今天是第1天.&/b&&br&&a data-title=&@题主& data-editable=&true& class=&member_mention& href=&///people/0edcd80b65& data-hash=&0edcd80b65& data-tip=&p$b$0edcd80b65& data-hovercard=&p$b$0edcd80b65&&@题主&/a&&br&书买到了吗?开发环境装好了吗?大体理解接下来29天要学习的内容了吗?还有信心和意志力坚持下去吗?&br&如果决定搞安卓开发,应该学习java.如果决定搞iOS开发,应该学习Obj-C.&br&这两门语言是&u&&b&面向对象&/b&&/u&的语言.它们将程序看成一个个&对象&的互相作用,对象有自己的特征和工作方法.&br&一个App有视图,控制代码和模块三个部分.这被称为&u&&b&MVC模型&/b&&/u&.&br&一个成熟的类似ins的App的开发,要实现移动终端上的程序(&u&&b&Client&/b&&/u&)和专用的服务器上的程序(&u&&b&Server&/b&&/u&).&br&Client 和 Server通过IP协议上层的传输层协议(TCP或UDP)通信.&br&接下来29天,大体要学习的部分就是这些:&u&&b&1.程序开发基础;2.MVC模型;3.网络编程相关知识.&/b&&/u&&br&如果想继续学习,请私信我或留言.&br&Hope you will carry on your career.&br&&br&The end of this section.&br&------------------------------------------------------------------------&br&第1.5天 说明下情况,以免新手被坑&br&鉴于下面有知友说想看后续,于是决定更新.&br&不过更新前必须交个实底,本人学生一名,之前&b&只搞过MFC&/b&(可以理解成Windows窗体程序开发的一种方法),会数据库操作和网络编程,上过计算机网络,自学过操作系统和数据结构.可以称得上熟练掌握的编程语言只有c++.安卓和iOS开发都看过书,但掌握的不是很全面,实际经验也很匮乏.&br&但这些开发的本质,个人看来是一样的.并不会因为语言特性的些许不同和实际操作的一点区别而影响本质.因此希望通过更新这个答案也能巩固自己的学习.&br&(说通俗点就是我是个大菜鸡,非要装成高手写了这么个东西...)&br&-------------------------------------------------------------------------&br&今天是第2天.&br&规定一下格式:&i&斜体字&/i&是非必须看的,新手可以不看,&u&&b&粗体下划线&/b&&/u&是必须掌握的概念.&br&程序开发语言主要分两种:&br&0.面向过程式.(现在多数已经成为面向对象式的一部分,如C语言,在App开发中已经不常用)&br&1.面向对象式.(Java和Obj-C,C++都是面向对象的编程语言,这类型的语言在实际应用中最重要,必须学习掌握)&br&2.函数式.(阳春白雪,相对业务应用少一些,和App开发关系不大.如果在以后希望深入学习算法等,可以考虑学习一门)&br&&br&App开发的核心是程序的书写.因此今天讲面向对象编程思路.(注意,是&思路&.具体的语法不会涉及太多)&br&面向对象的编程将&对象&(Object,物体)视为核心,对象的&动作&称为&b&方法&/b&,对象的属性(特性)称为&b&成员变量&/b&.&br&如果用面向过程的视角来看,成员变量是特殊的&u&&b&变量&/b&&/u&.方法是特殊的&u&&b&函数&/b&&/u&.&br&&i&可执行程序加载入计算机内存后摆放在三个地方:代码段(用于保存函数中的命令),数据段(用于保存全局变量和常量),栈段(用于保存函数调用函数的关系,还有一些其他信息,如上下文切换,这里没必要不介绍).&/i&&br&&u&&b&变量&/b&&/u&的本质是一块&u&&b&内存中的空间&/b&&/u&,能够记录一定形式的数据.&br&&u&&b&函数&/b&&/u&的本质是很多条指令,能够被执行并&u&&b&读取,计算,判断,修改一些&/b&&/u&指定地址&u&&b&变量的值&/b&&/u&.&br&&br&对象是方法和成员变量的集合.&br&类(class)是对象的集合.&br&&br&是不是很抽象?举个例子.&br&人类是一个&类&,某一个具体的人A是这个类的对象,A的体重是变量.人有一个方法叫做吃(记住,方法就是函数,函数就是指令的集合,吃是一个动作,也就是一堆指令),通过执行&吃&这个方法可以改变人的体重.&br&如果还不明白(其实暂时不明白也正常),就拆解的更细致一些:&br&类,就是某种对象的公共特征,比如人,是个人就一定有体重这个属性,因此体重是这个类的成员变量,这个类的每一个对象(具体的人),都有体重这个变量.&br&吃,就是这种对象都可以有的动作,是个人就可以吃,通过这个动作能改变一定的变量(比如人的体重等).&br&那么怎么用代码实现呢?(注意,不同语言的代码看起来不一样,但是实际本质是一样的.)&br&&i&下面有人喊要我讲Obj-C,那我就现学现卖了.&br&定义一个类.&br&@interface Human&br&{&br&&br&}&br&-void eat:(int)foodweightinKG;&br&@end&br&&br&@implementation Human&br&-void eat:(int)foodweightinKG&br&{&br&
weight=weight+0.15*foodweightinKG;&br&}&br&@end&br&&br&这就实现了吃一公斤胖0.15公斤的人这个&类&.&/i&&br&类,对象,函数,变量是以后开发的重要概念,必须熟练掌握.建议想学习的知友买本参考书,用于学习某门语言的语法.这个答案不可能特别具体的讲解每一个语法,但如果有资料辅助的话学习起来是不难的.&br&如果从后面来看我的答案,建议看到这里的时候找一些学习资料,学习一下某门具体语言的语法.这里重要的是理解这个思路,就是通过控制&对象&,修改对象的属性,调用对象的方法来控制程序的行为.&br&&br&The end of this section.&br&---------------------------------------------------------------------&br&今天是第3天.&br&今天主要讲程序设计中的一些基本问题和概念.&br&有些问题要强调一下:&br&
0.本人菜,能搞明白的只有c++,java会的相对比oc好一些,oc非常生疏.但基本原理都一样.&br&
1.看完这个基本上就有思路了,但还是要自己买书实践.篇幅所限不可能内容太完备.如果有具体问题还是要自己查找资料,结合实践解决.&br&
2.这么多赞确实出乎我意料,我会尽力更新.有问题也可以在下面提问,如果能解答的话我会尽力解答.&br&-----------------------&br&今天想告诉大家一些当初我在学MFC时候弄了很久才理解的很简单的道理.&br&一.一个App,甚至一个窗口程序,绝大多数功能,都不是靠自己硬写出来的,而是调用已有的库函数,套用已有的类,加上中间业务逻辑的代码,和自己的算法实现(如果有).&br&
就说最简单的Hello,world 这个东西如果要从一无所有的裸机(没有操作系统)上实现,必须得从头写向显示缓冲区中写数据的汇编指令(假设在8086上).&br&
这个工作量显然不小.但我们不需要这样做.只需要调用系统自带的库函数就可以解决问题.&br&
在Windows程序开发中,我们要画一个窗口,即使用调用WindowsAPI的方法,也要写几十行代码(注册窗口类,设置属性什么的),最后ShowWindow(),才能显示出来.这显然不符合面向对象的设计原则,而且增加了完全不必要的复杂程度.&br&
因此,绝大多数普通开发者(非底层开发者)的日常工作是:寻找一些适当的库,调用这些库中已有的代码,来进行功能的实现.&br&
因此后面讲的网络编程,不是叫你从头控制每个数据包里的每个字段填什么,而是只需采用适当的类(java有个Socket类,c++用socket函数从OS获取句柄),调用其中的函数(bind,listen,connect,accept,send,recv,close/sendto,recvfrom等等)就可以了.&br&
这就是一个非常重要的理念:分层模型.将复杂的逻辑分成多层来实现,上层只和自己紧挨着的下层交互,保证了层与层之间一定的独立性,为复杂应用的开发提供了可能.&br&&b&情况1&/b&.你的软件比较复杂,应该用分层.&br&
比如未来我们要开发一个小型社交软件(假设),那么首先我们要写一个服务端,服务端要记录用户的信息,对话的信息.可以创建一个用户类,用于记录用户的信息.再创建一个对话消息类,从高层上抽象用户与服务器发消息的过程,便于写客户端;再创建一个好友类,用于记录用户和朋友列表的对应关系(&i&可以思考一下朋友列表怎么实现?&/i&).再创建一个记录类,用于帮助客户端实现聊天记录的实时查看,搜索,管理功能.&br&
假设我们已经构造好了这些类.那么在新用户填写完用户名密码,点击注册按钮的时候,就应该创建一个对话消息类的实例(也就是这个类的对象),尝试向服务器发出一组消息,里面包含着新用户的用户名,密码(&i&或者密码的Hash散列,但这个目前先不讲&/i&),一些填写的资料等等.&br&
如果你在点击按钮后被调用的函数(称为&回调函数&,Call back function)中,没有使用你已经创建好的类,而是从头写了一遍TCP报文内容填充代码,那么这显然不是对已有层模型的良好应用.正确的做法是用你已经有的那个高层类的各个函数实现报文的填充.&br&
同理,如果你想创建一个客户到客户的好友关系,不应该自己从头改数据,而应该调用之前建立的好友关系类的成员函数.这样不容易出现问题(比如从头写的时候忘了考虑边界条件),也能大大节约开发,维护,升级(如果你把同样的代码拷贝了一份过去,那么你修改这段代码的功能的时候就必须把拷贝的那份也修改了!)的成本.&br&&b&
情况2&/b&.你的软件和操作系统内核交互,或者想要操纵硬件,那么必须调用系统的API(Application Programming Interface).这种情况下,你被迫接受了分层模型.&br&
这样说可能显得比较抽象不好理解.那么举个具体的例子.&br&
首先,如果你要判断2^17+1是不是素数,而且判断结束后的结果也不输出,就那么放着,那么当然可以不去碰系统的API.&br&
但如果你想把结果输出到屏幕,或者通过网络传输回服务器,或者获取传感器的信息等,那么必须调用操作系统提供的函数.因为操作系统利用地址空间变换,让你碰不到真实内存空间.调用这些API时具体的参数很多,需要时可以上网查找相应的函数参数和返回值的约定.&br&二.一个APP的开发分这几个部分,以安卓开发为例.这里假设大家都已经安装了Eclipse作为开发环境,并且都有Android开发包.如果没有可以去下载一下.这两个软件都是免费的.&br&新建一个空的Android工程.&br&&img data-rawheight=&582& data-rawwidth=&402& src=&/23749eddd095facd3815ca_b.jpg& class=&content_image& width=&402&&大概长这样.&br&认识一下图中的文件和目录.&br&1.首先是src和下面的那个package(对就是那个图标像准星瞄准肿瘤一样的东西,好像看它裂成4块啊).&br&src是源代码文件夹.&br&解释一下,在java里一个package相当于一个&包&.&包&里可以有一个或多个*.java的源代码文件.编程的工作就在这些.java文件里进行.&br&2.然后是一些资源文件.在res目录下.&br&比如这个AndroidManifest.xml,这里面记录了一些文档信息.比如软件的版本,包的关系之类的东西.&br&又比如res\layout\main.xml(图中忘展开了,但是你自己建完工程点进去肯定是有的.),这个xml文档控制了你的App的一个界面,App有单界面和多界面的,咱们先死磕这一个界面.双击这个文件,看到的大概是这样的.&br&&img data-rawheight=&697& data-rawwidth=&1261& src=&/5dbedbad6ab779bf29ad2b9_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1261& data-original=&/5dbedbad6ab779bf29ad2b9_r.jpg&&是可视化的.所以可以做&所见即所得&的编辑,就像编辑文档一样简单(当然了如果要考虑兼容其实也不是那么简单的,但初学者不用考虑太多).&br&&i&当然了,如果你想求根问底那满足你.&/i&&br&&img data-rawheight=&268& data-rawwidth=&723& src=&/db65a04dffae7ce7d4bbf9f_b.jpg& class=&origin_image zh-lightbox-thumb& width=&723& data-original=&/db65a04dffae7ce7d4bbf9f_r.jpg&&&i&这个的确很容易把初学者吓回去,但是不用担心大部分时间你是不用碰这个的.而且这个xml文档就类似html文档一样.不信你打开一个网页,右键-&查看源代码看到的也是类似格式的东西.用尖括号组表示一个段落,段落之间嵌套或并列,是xml文档的特点.目前不必深入.&br&&/i&然后就是一些其他的资源文件,比如drawable-hdpi里面有图片文件,用于显示.这个和网页制作是有共同点的.后面再介绍.&br&3.可执行文件.&br&&i&这里有必要介绍一下计算机程序的运行过程.&br&计算机程序的运行有两种形式:编译型和解释型.&br&先说编译型.(如C系语言)&br&首先,程序员采用各种高级语言(相对汇编码)编写程序.然后编译器把程序员书写的源代码分析,转换为汇编码,链接器链接多个文件,形成最终的可执行文件.最终发布的时候如果只发布可执行文件,那么用户是看不到高级语言源代码的.&br&再说解释型.(如php,asp等网页脚本语言)&br&首先,程序员书写脚本.然后解释器读取源代码,并动态的分配空间给程序中的变量,判断程序的走向,执行相应的动作.如果要发布给用户(当然脚本一般不发布出去),用户是能看到源码的.&br&&br&而Java就很特殊了!!!&br&Java编写的程序,首先经过初步的编译,生成了Java字节码.(一种比较底层的东西,但不能碰到具体硬件)然后把这个东西放到JVM上跑.因为JVM这个东西每个平台上都有,因此也就相对容易移植到不同平台上.这个JVM的全程是Java Virtual Machine,也就是一个虚拟机.所以性能相对就比较烂,不过现在大多数应用场合是不特别在乎运行性能的,反倒是开发速度和可移植性可维护性比较重要.&br&这个JVM也可以理解成一个大型的解释器(...)因此Java算哪种不好说,两种特点它都有.&br&然后呢,AndroidApp更特殊,在Java这么奇特的大背景下它也算特殊的.为什么呢?为了适配移动设备(低能耗等需求),出了一个东西,叫Dalvik Virtual Machine.这个东西的字节码和java字节码还不一样...&br&所以为了编写一个AndroidApp,你的Java源码经历了这样一个流程:&/i&&br&Java源码-&Java字节码-&Dalvik字节码-&.apk文件&br&
(与资源等打包)&br&&br&说了这么多,那如何得到最终的apk文件呢?&br&点击Eclipse上面那个绿色的箭头就可以了.&br&&br&The end of this section.&br&------------------------------------------------------------------------------&br&今天是第4天&br&今天计划继续研究第一个AndroidApp,HelloWorld工程的结构,并添加一个按钮控件.&br&今天将介绍&u&&b&回调函数&/b&&/u&的概念.&br&如果可能我更一个iOS开发的,毕竟也不能太坑想学iOS的...但是各位小伙伴记住原理都是一样的,只是具体实施方法有那么一些区别而已.&br&&br&&br&遇到点问题卡住了.这个答案更新可能比较慢....等我调一下&br&&br&好的,回来.&br&首先,建立完工程之后,如果没有现成的Android设备(如本人手头的老机器好久没用了得找找),可以建立一个AndroidVirtualDevice.这个在下载开发环境的时候会有AVDManager,在那个里面建立就行.&br&如果建立完之后start有问题,那么改环境变量.附一篇文章:&a href=&///?target=http%3A///album/91f5db1beb12d41c7f05e39f.html%3Fpicindex%3D3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&百度经验——实用生活指南&i class=&icon-external&&&/i&&/a&(如侵犯作者著作权请通知,会删除)&br&然后点击绿色按钮,会在刚才建的虚拟机中出现界面.就像这样.&br&&img data-rawheight=&796& data-rawwidth=&1610& src=&/4d5e146aa2b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1610& data-original=&/4d5e146aa2b_r.jpg&&然后呢,工程里的那个R.java不要改,那个是自动生成的,用来配合你写的部分.&br&今天先把开发环境配置好.如果能顺利走下来建立工程打开AVD看到这个基本主要任务就算完成.有中间卡住的可以百度,百度不到可以下面留言问我.&br&然后如果想在界面上加点东西应该怎么办呢?&br&我试试改下main.xml.一会继续更新.&br&&br&好的,现在回来.&br&&img data-rawheight=&714& data-rawwidth=&1495& src=&/750ccbf39b9e4bae4c139e8b976e228b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1495& data-original=&/750ccbf39b9e4bae4c139e8b976e228b_r.jpg&&&br&这里你直接拷贝代码是不行的.要注意几点:&br&1.MVC模型中,你创建的&b&视图&/b&(在main.xml的可视化编辑界面中拖拽过来一个按钮)&b&和Button对象MyButton1是没有直接关联的&/b&.要让他们有关联,必须绑定.这个动作在代码中的findViewById中实现.至于那个id参数填什么,可以看你的R.java(别改,千万别手贱),点击那个东西一个个展开,R.java-&R-&id,里面一定有你刚才在视图里创建的那个button的id.找到他就可以了.&br&&i&这个东西的实质是一个类似宏定义的整数,打开R.java,你会发现一堆public static final class,里面有一堆int型的变量,那个其实就是类似于宏定义的按钮的类似&句柄&的东西,用MFC的类比.只要知道这个整数唯一对应着视图域的那个控件就行了.&br&&/i&然后下面的行为就是确定按钮的行为.这里通过setOnClickListener,实现了把自己的回调函数(onClick())绑定到按钮的被点击事件上.可以理解成一旦点击这个按钮,Android就会触发这个函数执行.&br&&br&接下来讲解下回调函数的概念.&br&之前&b&讲变量的时候我埋了一个伏笔&/b&,说&b&所有变量都可以通过他们的地址来读写&/b&.&br&好的,现在回到这个伏笔.&br&可以认为setOnClickListener这个行为传入了一个对象地址,这个对象的地址由new OnClickListener得到,而里面的那个OnClick()函数认为是新创建的这个OnClickListener对象的一部分.&br&&br&这个行为就类似于C++当中传函数指针.如果能理解最好,不能理解就记住这么写就能好使(是不是要求太低了...).&br&The end of this section.咦,this怎么变色了.&br&--------------------------------------------------------------------------------&br&PS[0]:再强调一下,这个东西本人也是第一次写(指的是在这个开发环境下写,之前可视化的开发一直写windows窗口程序的).所以可能更新过程中突然卡住了.答主应该不会弃坑.&br&PS[1]:看这架势有可能不到30天就更完了.如果这样的话很可能太快有人跟不上,有问题随时留言问就好.当然能搜索的请自觉先搜索,搜索不到解决方案再来问.&br&PS[2]:答主好久以前安装的开发环境,如果要开发环境的话我去找找还能不能找到那个包了.这个安装的时候实在太麻烦了,因此学习Android开发我也是拖了很久.希望真的有兴趣开发App的朋友们不要仅仅因为安装过程中遇到一些困难就放弃.尤其是之前没有开发可视化程序经验的新手,如果能成功看到自己写的不是黑框框的东西,会很大程度上提高对编程的兴趣.(当然后来我又主动退回到黑框框里去了,这是后话.)&br&--------------------------------------------------------------------------------&br&第4.5天.&br&咨询下大家意见.我打算接下来25天(可能用不了那么久就完结了)讲快点,做一个聊天工具的开发.这个怎么样?能接受不?还是先回顾下前面?&br&iOS那边我一会看看,争取更一个,今天Android那边打算先停一下,因为前面侧重点太靠这边了,而且这推进速度也不算慢.但注意,原理是相通的,细节略有不同.毕竟前面一直都没怎么偏向iOS这边,不能太厚此薄彼.&br&等下,答主换台mac回来接着更新.&br&好的回来了.&br&首先要搞iOS开发得有台MacOS设备,注意,没有Mac可以弄虚拟机,或者借一台,本人的mac是借的.虚拟机也完全一样,就是有点卡.&br&还有必须说明的一点就是要开发iOS App的过程不需要开发者账号,但如果想发布在AppStore或者在自己没越狱的iOS设备上用,那必须得有开发者账号.付费之后就可以使用.价格记不清了,不低也不算高.如果不买开发者账号,就只能在模拟器上跑.&br&另外就是软件方面.有了MacOS设备之后在AppStore下载安装一个XCode作为开发环境就可以了.&br&------------------------------------------------------------------&br&今天是第5天&br&那么想学习iOS开发的朋友们请打开你的XCode.&i&学习Android开发的朋友可以把之前做的HelloWorld工程自己做一做,加上一个按钮.你在虚拟机里运行完一遍之后可以到你的工程文件夹下找*.apk,然后放到你的真机里去跑跑看.&/i&&br&&br&File-&New-&Project-&iOS-&Application-&SingleViewApplication(暂时选这个).Device那里暂时选Universal就行.&br&然后选择一个喜欢的位置放置工程文件.&br&为了验证你之前的开发环境配置是否正确,点击上面的三角形开始按钮,在模拟器(Simulator)中执行程序.&br&(下面这三段的第一个版本有问题,已经更正.)&br&应该能看到一个模拟器的界面弹出来,当然了整个屏幕不一定放得下,可能需要往上拉右面的滚动条.什么都不用做,等待片刻之后会出来一个界面.你会惊奇的发现它居然和LaunchScreen.xib的视图是完全一样的(不一样就见鬼了),当然,不一会它就没了,取而代之的是一个空白界面.&br&所以这里LaunchScreen.xib表征的就是启动时预先加载的一个Logo摆放的地方.&br&好的,那么由之前几天提到的MVC模型,或者按我个人理解:App工程=源码+视图+资源文件+杂七杂八&br&&br&既然要系统的学习,那么就应该掌握下iOSApp工程的文件结构.&br&等我出去看一下怎么截图.MacOS下我不会截图...&br&好的学会了.图解如下:&img src=&/51ec8cdc914dcae6f859e384_b.jpg& data-rawwidth=&240& data-rawheight=&355& class=&content_image& width=&240&&&br&上方为图1&br&&img src=&/b209af4a6ffa8ab1b10ea289fe8bc5b3_b.jpg& data-rawwidth=&573& data-rawheight=&244& class=&origin_image zh-lightbox-thumb& width=&573& data-original=&/b209af4a6ffa8ab1b10ea289fe8bc5b3_r.jpg&&&br&上方为图2&br&&img src=&/64b1dab71e1cd_b.jpg& data-rawwidth=&787& data-rawheight=&116& class=&origin_image zh-lightbox-thumb& width=&787& data-original=&/64b1dab71e1cd_r.jpg&&上方为图3&br&&br&那么图1中的各个文件都有什么用处呢?&br&首先看,有一堆.h和.m文件;*.h文件不必说,自然是C系语言都有的头文件.*.m文件是Obj-C的代码文件,就类似于*.cpp文件和*.h文件的关系.由于声明和实现分离是C系语言一贯的德行,而且前面也提到了Human类的接口声明在@interface后面,实现在@implementation后面,我们在这里也就不多说了.&br&&br&接下来说说具体每个文件的用途.&br&AppDelegate.m,里面装了许多回调函数.读那个函数名字,就知道它是在什么时候被调用的.有准备进入后台,已经进入后台,准备回到前台,已经回到前台等事件的监听.监听到事件后会调用相应的回调函数.&br&ViewController.m,里面装载了界面加载和内存不足时调用的回调函数.&br&Main.storyboard,这个是工程的主视图文件.因为建立工程的时候我们选择的是SingleView型的,所以这里只有一个.&br&你可以在这个界面上加入一些控件,比如按钮文本框之类的.当然了,这里的东西现在只能看,不能点,点了也没用,因为对应控件事件的处理函数没有写.&br&那么在哪里写这些事件的处理函数呢?答案是在ViewController.h中.注意这里XCode提供了一种很方便的绑定控件实例与事件回调函数的方法:拖拽.&br&&br&首先打开ViewController.h,和Main.storyboard,要保证两者能同时被看到.然后右键点击你要设置事件的控件,点住相应控件右侧的圆点,向ViewController.h中拖动.然后会弹出一个对话框让你填写函数的名字.给函数起一个好记的,含义充分的名字,以确保自己不会弄混乱.然后在&b&&u&生成的函数体(注意在ViewController.m中!!!)&/u&&/b&中填写适当内容就可以了.&br&注意,C系语言声明和实现的分离,决定了&b&&u&新的函数体在ViewController.m中.找到对应的函数,填写适当的内容即可.&/u&&/b&&br&&br&&img src=&/0cc02abbf55dee1aefa3d_b.jpg& data-rawwidth=&754& data-rawheight=&462& class=&origin_image zh-lightbox-thumb& width=&754& data-original=&/0cc02abbf55dee1aefa3d_r.jpg&&如图所示.&br&&br&做到这里之后可以休息一下了.今天的内容大概就是这样.求赞求鱼丸甩起(误)&br&&br&The end of this section.&br&----------------------------------------------------------------------------------------&br&今天是第5.5天.&br&看一下题目.要独立开发ins类的app是吧?&br&答主没用过ins,所以可能做的和题主想要的有点出入.&br&然后今天讲什么?咨询下大家意见.突然感觉没什么可讲的了.这哪用的上30天啊(笑)&br&&br&初步计划讲讲AndroidApp的结构,Activity之间的关系,App的状态.&br&然后做个比之前Helloworld稍微大一点的东西.&br&iOS那边先放一放,安装开发环境也挺折腾的,想学iOS的朋友先配置下开发环境把之前那个做出来吧.&br&----------------------------------------------------------------------------------------&br&今天是第6天.&br&讲一下AndroidApp里面Activity是什么.&br&Activity我个人的理解就是视图.可以认为App整体是一个网站,打开这个App之后看到的第一个视图是主页,页面之间可以来回跳转.&br&因此,可以认为Activity是一张类似于网页的东西.&br&仔细观察会发现Activity跟网页真的很相似.还记得那个main.xml吗,里面的布局和html布局的语法是很接近的,甚至有div.&br&布局的时候要考虑这样几个问题:&br&1.Android设备种类多,屏幕分辨率五花八门.网页一般兼容和的屏幕问题就不大了,而Android设备屏幕分辨率有:&br&320X480&br&460X640&br&----------------------上面这两种不常见.------------&br&480X800//这个还有一些&br&480X854//小米1就是这个分辨率&br&540X960//HTC以前的机器用&br&640X960//坑爹3:2,好像魅族用过,相对少见&br&0P,比较主流&br&&br&//1080P,高端机有采用的.&br&据说还有2K的,这个就更好了.&br&&br&基本常见的列举出来了.但也有没考虑到的.兼容这么多就不错了.&br&&br&这些设备别说屏幕分辨率不一致了,就连屏幕长宽比都不能统一.&br&坑爹的15:9,3:2,....(虽说苹果现在也好不到哪里去...)&br&这就决定了在设计界面的时候,必须结合绝对布局和相对布局两种方式.&br&所谓绝对布局,就是给出具体坐标,然后放置元素.&br&所谓相对布局,就是给出元素间放置的关系,然后放置.&br&具体在操作的时候可以通过放置linear layout的线来控制元素的位置.&br&比如这样:&br&&img data-rawheight=&609& data-rawwidth=&607& src=&/dcba4e90f7b8e45ee13d9ba_b.jpg& class=&origin_image zh-lightbox-thumb& width=&607& data-original=&/dcba4e90f7b8e45ee13d9ba_r.jpg&&&br&这个不多说了,因为我也不是特别懂美术和界面.&br&&br&好的,那么可以发现Activity上控件的布局和网页很相似.&br&那Activity的交互性是怎么实现的呢?前面我们已经看过了,是通过控件元素绑定相应的对象,进而在对象上调用回调函数实现的监听控件动作.&br&那如何将我们的后台的动作(比如socket收到一份报文)反映到控件上呢?&br&同样也是通过调用控件绑定对象的方法.比如,可以把文本框绑定到文本框对象上,然后在收到报文后调用文本框对象的setText方法设置文本框的新内容.推荐大家还是买一本讲App开发的书,可以对照着操作.&br&这种后台动作反过来影响前台显示的应用有很多,最常见的就是收到socket数据之后要在前台做对应的显示,或者一个控件的动作影响其他的控件的行为.&br&&br&iOSapp的视图被称为storyboard.这个和上面的很相似,不赘述了.&br&&br&另外再强调一下,本人之前也没碰过App开发.上面这些都是第一次做,因此答案的确定度存疑,可能可供分享的价值也不是很大.&br&&br&那么接下来准备把重点放回到编程上来了,上面那些布局和控件,视图之类的东西我计划后面做示例的时候再探索.其实我现在有点找不到下面该说什么好了.如果有明确的学习需要的话就在下面评论区提出来吧.&br&&br&好的.那么先讲讲内存管理吧.(现阶段新手用不到)&br&数据结构有两种.一种是大小和元素都确定的(一般都比较简单,像是一个单纯用数组实现的队列或者栈之类的),还有一种是动态分配并生成,用后销毁的,比如不定数目的元素连成链表,各种二叉树.这种变量的内存空间一般是临时分配的.因此就涉及到一个内存回收的问题.&br&Java有自动内存管理,但是要注意要释放的数据不要连成引用环,否则无法释放内存,发生内存泄露,相当于这块内存就一直被霸占着,一时半会倒不会有什么问题(这点其实反倒最坑爹,如果上来就能看到错那这种问题就很好改,怕就怕这种不知道什么时候会发作的Bug),但如果产生内存泄露在某个循环里或者某个经常被调用的函数里,泄露的次数多了就会导致整个环境没有一点内存可分了,程序就崩溃了.因此要注意回收内存的问题.&br&Obj C在这方面有自动释放池,记录剩余的引用次数.因此要注意作用域的问题,记得retain返回的局部对象,否则一不小心返回的东西会被莫名其妙的回收.&br&&br&&i&然后讲一下基本的数据结构.这里就假设大家都有一定基础了.这个在你开发玩具App的时候用的不多,但是想专门做软件开发的话这方面了解越深入越好(其实是我实在找不到现阶段该讲啥了)&br&首先是栈和队列.他们的区别很简单,栈是后入先出,队列是先入先出.用链表实现.&br&&br&然后是二叉树.二叉树维护着左右两个子树和一个上级节点.二叉树的作用是便于根据一个关键词的大小快速寻找目标元素是否在集合中.通过遍历一个二叉树,可以对集合中的所有已有元素进行某种操作.&br&然后是红黑树.红黑树是特殊的二叉树,能够维持高操作性能,实现上稍微复杂一些.&br&然后是图.图的作用主要是拟合现实中的多对多关系模型.一对多关系模型则可以考虑用树模拟,每一棵树都可以一一对应的化为一个二叉树.&/i&&br&这些东西有兴趣的朋友可以学习下,用计算机系数据结构的教材就可以.现阶段可以不掌握这些而直接投入开发,但如果想深入学习,这是一个很重要的必须要掌握的东西.&br&为什么说数据结构对后来的学习很重要?&br&比如你的App要维护用户与用户之间的好友关系,那就必须得有相应的数据结构保存用户与用户之间的关联.好友关系的创建删除查询都要在一个比较快的时间内完成,否则服务器会背上不必要的压力.又比如你的软件要实现推荐给用户想看的内容,那这就涉及到用户之间的相似度的计算(UserCF)和内容内部的归档(ItemCF).后者可以尝试用机器学习的一些手段(logistic,SVM等等),前者可以用向量内积法计算,等等.在掌握基本的语法和操作方法,熟悉了常用的开发过程之后,就可以考虑往算法方面前进.而学习这些算法的基础就是熟练掌握理解常用的数据结构.&br&&br&今天好像扯了很多没用的....因为实在没什么思路了,明天讲网络编程吧.&br&&br&The end of this section.&br&---------------------------------------------&br&今天是第7天.一周过去了,时间过得很快啊.&br&今天我们讲网络编程.这是应用软件开发的一个很重要的部分.&br&要讲网络编程,首先要了解计算机网络模型.计算机网络服从于之前说过的分层概念.也就是说,网络的实现是分层的.&br&OSI指导模型将网络分为7层.实际应用的是TCP/IP,它将网络分为5层.这5层分别是:应用层,传输层,网络层,数据链路层,物理层.&br&物理层,顾名思义,是与底层物理链路相连的层,为数据链路层提供基本的报文传送服务.数据链路层为网络层提供服务,以此类推.&br&由下至上的,最后自然是&u&&b&由传输层负责为我们的应用层(我们的App)提供服务&/b&&/u&.因此,我们主要的&u&&b&编程工作是针对于传输层与应用层的接口的&/b&&/u&.&br&先看传输层.传输层的主要任务是:将用户要传送的数据整理成一定的格式,发给接收设备的传输层.接收设备的传输层收到后,将数据提交给自己的应用层.&br&传输层还有一个任务,就是实现&&u&&b&复用&/b&&/u&&.一台设备上通常有不止一个程序需要连接网络,但他们之间的通信必须是互不干扰的.这是依靠的是传输层的&端口&实现的.&br&传输层有两个协议:TCP和UDP.他们的区别是:1.TCP是可靠的,UDP是不可靠的.2.TCP是以流的形式传送,而UDP是以一份报文的形式传送.&br&TCP保证在连接没有断开的情况下正确且按顺序地传送每一份数据,将数据连成一个&流&,保证数据在连接不断的情况下被可靠地传送.&br&UDP将要发送的内容打包成一个报文(通常报文的长度要求小于1472个字节),整份报文会被作为一个整体传送.如果报文传送失败,接收方不会收到任何数据.如果传送成功,那么接收方会收到完整的数据.&br&因此,UDP的传送虽然不可靠(不保证送到,错了也没有提示),但是&u&&b&如果收到了就一定是正确的&/b&&/u&,不会出现&收到内容错误的报文&的情况.&br&&br&初步熟悉了这两种传输层协议的特点之后,我们讲讲传输层的端口和网络层的IP地址,以及NAT(Network Address Translation,网络地址转换).&br&为什么要讲网络层的东西?不是分层模型只需要操作和自己最近的一层吗?&br&因为NAT的出现违背了分层模型,因此必须特殊考虑.&br&首先介绍一下端口的概念.端口是为了区分同一台设备上的不同程序而设计的.比如HTTP协议默认绑定了服务器的80端口.这样当你发起针对80端口的连接请求的时候,服务器的服务端应用会加以处理(虽然你最后连接上的不是服务器的80端口,这个是后话不提).又比如你的ssh服务端口是22,这样当同一台服务器同时开启ssh和http服务时,两种服务因为监听的端口不同,所以请求处理不会混乱.&br&&br&那么NAT又是怎么产生的呢?&br&路由器是最高工作在网络层的设备,它的作用是转发报文.家用路由器涉及到一个复用的问题,就是全球一共有差不多46亿IP地址,不可能每台设备都分配一个IP地址.因此必须设置好转发关系,让你分到的一个IP地址经过转换转换使得你的每一个设备上都有不同的IP地址.&br&这是怎么做到的?&br&IP地址的确只有46亿个,但是端口号的取值范围是0到65535,而一般的设备是不会跑那么多网络连接的.因此,通过&全球通行IP地址:对外端口&-&&本地专用IP地址:对内端口&的映射,是有可能实现IP地址资源的复用的.这里不详细讲NAT了,有兴趣的可以自己搜索.&br&&br&然后讲讲最常用的TCP的连接建立过程.TCP是有连接状态的.因此,比如我要连接到服务器的80端口,我就应该先绑定一个本地空闲的端口(客户端这一步可以在创建套接字的时候顺带着由操作系统自动完成),然后用这个套接字(socket)向服务器的80端口发起连接请求.服务器收到请求后,会分配一个自己的空闲端口(注意,这个才是最后和客户发生直接对话的端口,80端口只用于监听)与客户的这个socket建立连接.这样就发起了一次稳定的TCP连接.&br&UDP没有连接状态.因此假设我们要通过UDP和服务器的81端口通信,只要创建一个套接字,然后想都不想直接给发送报文给81端口就行.一般UDP的应用不要求必须送达,因此也不必关心服务器是否收到了消息,继续做下面的事情就可以了.如果服务器成功收到了消息,并进行了处理,然后又回复了一封报文,你就可以选择接收这封报文,并查看里面的内容.&br&&br&当然了,UDP也没那么可怕,一般来说正确发送正确接收的概率远远大于出现故障的概率,除非网络连接的状态特别恶劣(干扰严重导致物理层误码被丢包),或者有人为错误(比如尝试发送过长的报文,导致网络层IP包被拆了,整个报文跟着完蛋了),否则正确收发的情况还是占大多数的.&br&&br&今天就先讲这么多.有兴趣继续的可以回去多看一看计算机网络体系结构的资料,还是很有趣的.明天讲具体的编程过程.&br&The end of this section.&br&-----------------------------------------------------&br&十分抱歉昨天因为个人原因拖更了.今天一并补上.&br&今天是第8,9天.因此今天的内容也要稍微长一些.准备一口气介绍完Java和OC的网络编程,并初步进入多线程模型的学习.&br&&br&首先,要知道Android和iOS都是基于Linux的.因此他们的底层服务是一样的.但对于具体的开发方式而言所应用的网络通信函数库又是不相同的.&br&AndroidApp跑在JVM里.因此必须调用Java的&a href=&///?target=http%3A//java.net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&java.net&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&包里面提供的函数.&br&Obj-C向前兼容C.因此可以调用传统的Socket函数.也可以采用Core Foundation和NextStep的类.这种类(CFNetService,偏底层;NSNetService,偏高层)有高层的抽象,更方便人类理解和使用.&br&接下来必须辨析两个通信中的概念.&br&&br&1.同步和异步:对文件,TCP连接等外部&设备&,我们能进行的操作只有两种:读和写.获取数据是读,发送数据是写.&br&同步操作,指的是等待操作完成,在此之前不做任何其他行为,直到操作完成才继续向下运行.异步操作,指的是给操作系统下达一个任务,让它安排合适的时机完成指定的读写操作,而程序自己继续向下运行.这项读写任务的完成情况由这样几种方式反馈:1.操作系统给进程发送信号2.操作系统在操作完成后调用事先约定的回调函数.&br&&br&2.阻塞和非阻塞,&br&阻塞和非阻塞一般指读操作.写操作发生阻塞的情况在少量数据发送的应用中不多见.&br&&阻塞&指的是当操作无法完成时,在这里一直等待,直到操作完成.&br&&非阻塞&指的是当操作无法完成时,获取到这个不能立刻完成的信息,当场放弃等待,立即进行下面的工作.&br&比如客户端收取服务器传来的数据的操作,如果利用阻塞操作实现,那么当接收缓冲区里没有数据的时候,客户端程序(这里认为是单线程的实现方式)将停在这里一直等着,不能响应任何动作.宏观表现就是卡死了.&br&而如果采用非阻塞方式实现,当缓冲区中数据时,将立刻收到一个&WouldBlock&的消息,然后程序可以向下运行,处理这个问题.这时是可以避免应用活活卡死的.&br&&br&接下来可以介绍这几个类了.(本人对用底层Socket的操作比较熟悉,对这些类比较生疏,因此也包含着探索的过程)&br&1.Java的&a href=&///?target=http%3A//java.net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&java.net&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&包.&br&(1).底层Socket.&br&Socket skt= new Socket(远程地址,端口号);//这里创建的是TCP连接.&br&OutputStream writestream=skt.getOutputStream();//获取一个写入流,向写入流中写入数据即可.&br&InputStream readstream=skt.getInputStream();//获取一个读取流,从这个流中读取数据.&br&writestream.write(流式内容的字节数组,起始位置,结束位置);&br&readstream.read(接收缓冲区,起始位置,最大接收长度);//这个返回值是实际读入了多少字节.如果读入的字节数小于你想要的接收长度,可能需要过一会再次调用这个函数进行数据读取.&br&skt.configureBlocking(true/false);//这个函数将设置当前socket工作在同步模式还是异步模式.&br&然后可以用select方法进行多个socket的管理等.这里不多说了.&br&(2).高层的连接.&br&&1&数据库连接.&br&常用的数据库会提供相应的jdbc,这样的话直接调用库中的函数就可以完成连接与登录的过程.&br&查询与修改可以直接传SQL命令字符串完成.也没什么可说的.&br&&2&HTTP.&br&要开始一个HTTP连接,可以用底层的socket直接连接服务器的socket端口,并自己合成报文.但显然这样做没有利用好现有的库资源.&br&Java的&a href=&///?target=http%3A//java.net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&java.net&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&提供了一个URL类和一个HttpURLConnection类.通过这两个类可以方便的获取URL所指向的文件资源.创建一个这样的HTTP请求的过程如下:&br&先创建一个String str,然后将这个str的内容填充为要连接的URL.&br&然后创建一个URL myurl=new URL(str);这样就可以用这个myurl创建HTTP连接了.&br&HttpURLConnection con=(HttpURLConnection)myurl.openConnection();&br&然后可以从连接con中获取数据流了.&br&BufferedReader reader=new BufferedReader(new InputStreamReader(con.getInputStream));&br&接下来从reader中读取:&br&String thisline=reader.readLine();//将一行内容读取到thisline字符串中.&br&也可以将内容直接读取到byte数组中.不赘述了.&br&&br&2.Obj-C的常用库:&br&&1&.底层连接:可以用linux的socket(个人比较熟悉这个);&br&&2&.HTTP连接可以用NSNetwork.就像这样:&br&NSNetwork同步HTTP操作:&br&NSURLRequest *pReq=[NSURLRequest requestWithURL:[NSURLURLWithString:@&填入你要访问的URL&]];//注意,这里的@后面接字符串常量.&br&NSURLResponse*&br&NSError* err=&br&NSData* data=[NSURLConnection sedSynchronousRequest:pReq returningResponse:&urlrep error:&err];//创建接收缓冲区,开始接收数据.&br&if(!data)//如果接收失败&br&{&br&
if(err)&br&
{//如果产生错误&br&
NSLog(@&错误为:[%@]&,[err localizedDescription]);//打印错误到控制台.&br&
}&br&}&br&异步操作可以自己创建一个类,然后调用Obj-C特性中的代理的方法实现每次收到数据呼叫自己的回调函数.记得每次在回调函数中检查错误就可以了.这里不赘述.&br&&br&最后介绍一下Linux的网络编程API(实际上这些API在windows下绝大多数也都能用.但Windows下的一些API到Linux下不能用了):&br&之所以前面没有介绍如何绑定端口,如何实现监听连接请求,是因为一般没有在手机App上搭建服务端的,一般都是用Linux服务器搭建服务端,然后绑定端口,等待App作为客户端来连接.&br&&br&因此,这里重点介绍Linux服务端的搭建.&br&首先,你最好有一个固定的公网IP地址.(192开头那个不好使.可以自己租服务器,没有固定IP也可以用一些高级技巧,比如动态DNS,但这种服务不稳定)然后绑定自己机器上的一个端口作为自己的服务用.注意不要和常用端口冲突(参考:如果你在同一台服务器上要架设网站,那么留出80端口,从剩余端口中选择;如果要通过ssh远程连接这台服务器,留出22端口).这里假设我们用公网IP的6602端口.如果服务器在自己家的路由内部,记得设置路由器端口映射,到你的服务器上监听的端口.&br&接下来创建一个cpp文件.&br&vim Server.cpp&br&用a命令编辑文本.&br&#include......//一堆头文件,到时候现用现查&br&int main&br&{&br&
typedef int SOCKET;&br&
SOCKET skt=socket(AF_INET,SOCKET_STREAM,0);//指定创建TCP套接字.&br&
sockaddr_&br&
memset(&thelocaladdr,0,sizof(sockaddr_in));&br&
thelocaladdr.sin_family=AF_INET;&br&
thelocaladdr.sin_port=htons(6602);&br&
thelocaladdr.sin_addr.s_addr=0;&br&
bind(skt,(sockaddr*)&thelocaladdr,sizeof(sockaddr));//把套接字绑定到本地地址,相当于绑死你刚才那个端口和你创建的套接字skt.&br&
listen(skt,5);//最多同时处理5个未响应的连接请求(这里实际是设置等待队列深度,深度太大也没用)&br&
while(1)&br&
socket remoteskt=accept(skt,0,0);//等待客户端连接,新套接字是&br&
int isParent=fork();//谁是0谁儿子(笑)&br&
if(!isParent)&br&
{//如果是子进程&br&
//在这里处理连接请求,用recv收,用send发.连接结束后,回收垃圾,结束自己.&br&
return 0;&br&}&br&必须得说明下,不是我不缩进,是知乎不支持,我打的空格全没了....&br&&br&好的,既然这里都用到fork函数了,那就说明已经是时候讲多进程/多线程了.&br&不过,今天的内容应该已经够多了,可以慢慢消化一下.明天讲多进程/多线程.&br&&br&&br&The end of this section.&br&------------------------------------&br&今天是第10,11天.(答主时间不多,有时候更新不及时,而且开学之后基本上不太可能实时更新了....见谅,但是内容上是不会少的.等我完全掌握之后会回来更正一遍,改正这个版本的错误并梳理思路.)&br&&br&今天讲讲多进程/多线程编程.&br&首先辨析一下程序文件(可执行文件)/进程/线程的区别.&br&可执行文件是一个静态的,二进制文件.它平时被保存到外存上.只有当可执行文件被执行的时候,才被操作系统读取其中的内容,并分块加载到主存储器.&br&这个程序被执行后,会产生一个进程.&br&如果这个进程fork()自身,或者再次执行这个程序,会产生第二个该程序的进程.&br&如果这个进程创建子线程,那么会产生线程.(主要是windows下有这个概念,linux下的线程不太了解,一般都是用fork.)&br&线程之间一般可以共享数据段,而进程不可以.&br&下面详细讲一下linux的fork函数.&br&fork的基本特征可以一句话概括:到这裂两半,谁零谁儿子.(...)&br&换言之,就是程序运行到fork这里,操作系统(*nix内核)会给它再次分配一个数据段,并拷贝之前的内容.这样就可以再产生一个进程.这两个进程共享原来的代码,然后子进程的执行不是从原来程序的入口点(一般是main函数)开始的,而是从fork那句后面开始的.fork会提供一个返回值,用于返回是否是父进程.&br&&b&宏观上&/b&看,可以&u&&b&认为这两个进程是&同时&执行的&/b&&/u&.然而&u&&b&微观上的执行顺序并不确定,也无需关心&/b&&/u&.&br&例如,当你的环境是单核CPU时,物理上是不可能做到同时执行多个程序的.但是可以通过几十毫秒就调度(切换)一次进程的方式,实现多个进程&人眼可见的&同时跑在操作系统上.&br&&i&在Linux上(别忘了Android跑在Linux上,iOS是基于U

我要回帖

更多关于 火星表面温度 的文章

 

随机推荐