听课记录范文 听课记录怎么写 如何写听课笔记
天师附小 王红梅
听课是学校进行教学研究的一个主要形式,也是老师借鉴学习的一个主要途径。老师有效地做好听课记录,同写教学故事、反思、案例一样重要,都是老师教学资源积累的重要内容。
现在,有的老师不怎么会记听课记录,有的记成流水帐,有的记得不完整。过一段时间,再翻看听课记录,看不出有多大的价值,最多能硬付检查了事。
本人经过多年的经验积累,现提供一些听课记录注意事项,供同仁参考。
1、听课记录要完整,内容包括:科目、年级、做课教师、课题名称、听课时间、教学流程、课堂评价。尤其教学流程,除记录过程外,重点的师生语句、教学手段、媒体运用等都要记清。
2、教学流程是听课记录的主要内容。根据一堂课操作过程应包括:一复习;二导入,板书课题;三授新;四巩固练习;五小结;六作业布置;七板书设计。有时,一些老师的课前孕伏也很精彩,也有必要记下来。授新部分尽量记成课堂实录的形式,以便于课后反思查阅。
3、一堂好课的价值也就是一篇好听课记录的价值,反之亦然。有的老师一堂课可谓匠心独运,妙趣横生,听课老师要善于发现并详细地记下来;有的老师过渡语、引导语、评价语、小结语很引人入胜,自然也要记下来;有的老师手势、动作、表情很丰富,听课记录上要备注清;有的老师板书新颖、独特、简练,确能起到提纲擎领的作用,也要记录下来;另外,课堂上的失误、小插曲、随机事件,以及老师的巧应妙对也都可以记下来,供课下揣摩、反思。
4、课堂上要随听、随记、随想、随评,要善于捕捉灵感火花。否则,事过境迁,好的东西可能就遛走了,成了过眼烟云。课间评语可附在课堂实录右部分,占稍许位置即可。
5、课后评价要切中肯綮,一语中的,要评出特点、特色。不必面面俱到,不要人云亦云,过分的吹棒恭维更要不得。评价既要有感性认识,更要有理论依据。理论依据就是理性认识、理性分析、理性思考,这是听课的目的所在,是老师教学水平的体现。
教学评点要包括:
(1)、教材处理与教学思路、目标。(教者对教材的解读是否准确,也可以写出自己对于某部分教材的处理看法。教者的教学思路是否明晰,如果自己上会采用何种思路,教学目标的定位是否准确,目标达成度如何等等)
(2)、教学重点、难点、关键(评点定位是否准确,是否突破了难点,如何突破的,突破得是否巧妙,有无更好的办法)
(3)、课堂教学结构设计
(4)、教学方法的选择
(5)、教学手段的运用
(6)、教学基本功(教态、语言、板书、驾驭能力)
(7)、教学思想(新课程的理念如何落实于课堂教学之中)
(8)、其它
6、听课记录由于时间、环境所限,要求听课老师写字要有一定的速度,写的字自己要能看清楚,字的大小以小四号为准,一些标注符号要延续使用。另外,老师要注意收集听课记录,必要时整理汇集、装订成册。
你好!
我是嘉儿,就读于广东省东莞市洪梅镇中心小学。我现在已经11岁了,读五年级了。我喜欢读书,是个颇有语言天份的女孩。我们的学校有许多体育器材,如羽毛球,单杠等等。下课时,操场上可热闹了!我们的教室宽敞、明亮;学校还有图书馆、电脑室等多媒体教室,我们就在这美丽的校园中茁壮成长。
可能你对我的来信感到惊讶,因为你还不认识我,可我对你已经有了一些了解。我知道,因为你家收入微薄,所以你被迫辍学。据了解,你在学校表现十分出色,学习认真。当我们知道你12岁,才读一年级的时候,我们都惊呆了。因为种种原因,令你错失了学习机会。你们的学习环境恶劣,比起我们教学环境优越,我十分难过。我们吃得好,住得好,而你住的却是泥砖屋;我们有许多玩具,而你却连学费也交不起,我心里很不是滋味。
李丽琴同学,你的生活与学习是那样的艰苦,我真的很想帮助你。你需要什么呢?书?学费?还是学习用品呢?如果你有什么需要,那你尽管告诉我吧,我会尽我最大的努力去帮助你的。
俗话说得好:“一方有难八方支援。”让我们手拉手,成为真正的朋友吧!让我们二十一世纪的少年成为祖国的栋梁之材,为祖国献出一份力,把祖国建设得更加繁荣昌盛吧!
祝你
学习进步!
听课记录(八年级)
1、新闻两则
一、导入
二、教师检查预习字词情况,布置思考题:
1、快速默读课文,用简明的语言说说新闻报道了什么内容。
2、再读课文,理清记叙的六要素:人物、时间、地点、事件发生的原因、经过、结果。(指出记叙的六要素也是新闻的要素)
3、精读课文(分读、齐读),具体说说新闻是从哪几个方面来报道渡江情况的?按什么顺序报道,为什么? 学生读课文后,分小组讨论,全班交流,教师参与。
(三个思考题分别针对新闻结构的三部分:标题、导语、主体) 教师导学
(讨论了以上三个问题,教师引导学生得出结论) 要想迅速了解新闻的主要内容,就要看标题。要比较详细地了解新闻的内容,就要看导语。要更为细致地了解新闻的内容,就要看主体。
三、合作探究
教师布置思考题:
阅读这则新闻后,你以为新闻具有怎样的特点?(教师引导学生多角度思考)
学生小组讨论,全班交流,教师参与。
讨论后明确:
新闻的作用,报道国内外最新发生的重大事件或新气象。
新闻的结构,一般包括标题、导语、主体、结语和背景五部分。
新闻的写法,主要是叙述,有时兼有议论、描写。
新闻的特点,观点鲜明、内容真实、报道及时、语言简明准确。
四、学习小结:内容总结;方法归纳。
【评价:将方法的教学融入到具体教学内容中,达到了事半功倍的效果。也将我们的思维引向了一个新的领域。值得大家借鉴。】
第一单元综合性学习
一、创设情景导入
二、战争故事,你说我演
主持人:在语文课上或课外阅读中,你一定读过不少英雄故事,知道很多革命家不怕牺牲,智斗敌人的轶闻趣事吧。现在,请同学们以小组为单位,把你搜集整理的探险故事向同学们说一说,看谁讲得最生动有趣。另外同学可进行小品或哑剧表演来配合,以增加对战争的理解。
英雄故事讲述要求:
1、故事真实、连贯,
2、内容集中、鲜明,
3、灵活运用方法、技巧,
4、普通话标准,流利。
下面我们有请第一组代表„„ ☆董存瑞舍身炸碉堡。 ☆黄继光堵枪眼。 ☆刘胡兰宁死不屈。
☆狼牙山五壮士,面对敌人,毫不畏惧,英勇献身。
二、战争诗词,你吟我诵。
☆青青长云暗雪山,孤城遥望玉门关。黄沙百战穿金甲,不破楼兰终不还。(王昌龄《从军行》)
☆醉里挑灯看剑,梦回吹角连营。八百里分麾下炙,五十里弦翻塞外声,沙场秋点兵。(辛弃疾《破阵子•为陈同甫赋壮词以寄之》) ☆红军不怕远征难,万水千山只等闲。五岭逶迤腾细浪,乌蒙磅礴走泥丸。金沙水拍云崖暖,大渡桥横铁索寒。更喜岷山千里雪,三军过后尽开眼。(毛泽东《七律长征》)
☆假使我们不去打仗,敌人用刺刀,杀死了我们,还要用手指着我们骨头说:"看,这是奴隶!"(田间《假使我们不去打仗》)
下面我们再来说说有关战争的成语故事。
☆一夫当关,万夫莫开、草木皆兵、马革裹尸、赤膊上阵、乌合之众、打草惊蛇、四面楚歌、用兵如神、有勇无谋、全民皆兵、声东击西、攻其不备,出其不意、坚壁清野、揭竿而起 主持人:看来同学们课后下了不少功夫,一个个成语后面都有一段战争故事。接下来,我们看看,关于战争的古今名言,看谁又能说的多。
☆是故百战百胜,非善之善者也;不战而屈人之兵,善之善者也。(春秋•孙武) ☆得道者多助,失道者寡助。(战国•孟子) ☆天时不如地利,地利不如人和。(战国•孟子) ☆用兵之道,攻心为上,攻城为下;心战为上,兵战为下。(三国•诸葛亮) ☆胜负兵家之常,善用兵者能因败为成。(晋•张方) ☆惟有死者方可看到战争结束。(希腊•柏拉图) ☆正义没有武力是无能;武力没有正义是暴政。(法国•巴斯卡) ☆兵民是胜利之本。(毛泽东) ☆敌进我退,敌退我追,敌驻我扰,敌疲我打。(毛泽东) 主持人:好,名人们对战争都有自己独到的见解,我们对这些名言需要反复体味,才能领略他们思想的精髓。 〔评委打分〕
三、战争预测,你说我评。
四、拓展延伸。
请你以 "战争与和平"为话题,写一篇作文。题目自拟,文体、字数不限。
【评:一场学生为主的综合性学习活动别开生面令人耳目一新,起到了很好的作用。其一,巩固了单元的学习成果;其二,增长了学生的见闻,积累了丰富的课外生活;其三,活跃了课堂的气氛。】
9、老王
一、导入。
二、设问导读。 (一)、画说老王:
意在培养学生细致观察的能力,对他人关注的习惯。 (二)、问询老王:
意在唤起学生对他人的关心和同情,为后面学生阅读课文蓄势,让学生带着自己的问题读书。 (三)、走近老王:
1、简介杨絳。杨絳--钱钟书--《围城》。
2、生读课文。
三、点拨导思 (一)评说老王: 请用"老王是一个______的人,表现在_______。"的形式表达出来。
(二)、品味老王:文章中最能打动你的是哪个片断?在这个片断中打动你的又是哪些细节? 小组交流体会。请同学们把自己的独到体会说出来,与大家分享。 (意在培养学生对语言的感悟能力和创新能力。)
【评:课堂的条理很清晰,亮点在什么地方呢?问题的设置上面真的很到位,每个问题都充分考虑到了对学生某个方面能力的培养。】
11、中国石拱桥
一.导入新课:
二.简介作者
三.检查预习
1.生字词积累。
2.读了本文,你了解中国石拱桥的特点以及赵州桥和卢沟桥的不同之处?
四.初读课文,看看作者写出了石拱桥的什么特点。
1.提示:请同学们找出哪些段落是写赵州桥的,哪些段落是写卢沟桥的?联系课后思考练习题一,填空。
2.学生读,填空,教师巡视指导。
3.总结:
名称
位置
修建年月
赵州桥 横跨在河上 修建于公元605年左右。
结构特征
1全桥只有一个大拱,长达37。4米。
2大拱的两肩上,各有两面三刀个小拱。 3大拱由28道拱圈拼成。 4全桥结构均匀。
卢沟桥 位于永定河上 修建于公元1189到1192年间
由11个半圆形石拱组成,每个石拱长度不一,自16米到21。6米,桥宽约8米,路面平坦,几乎与河面平行。每两个石拱之间有石砌桥墩,把11个石拱联成一个整体,是一座联拱石桥。
中国石拱桥的特点是形式优美,结构坚固,历史悠久。
【评:通过对比的教学方法让学生能够容易明白中国石拱桥的特点,学生也能够很容易找到答案。但是没有将说明文的方法融入到课堂教学中,不能不说是遗憾。后来与老师交流得知,是第二课时的内容。】
30、诗四首
一、导入新课
二、整体感知
1、明确学习目标教师朗读课文,学生正音、划节奏并自由朗读课文。
2、思考下列问题
a.这首诗可分几层意思? b."但使愿无违"的"愿"具体指的是什么? c.这首诗流露了作者怎样的感情?
学生自主探究,教师引导并明确: a.全诗写了三层意思:种豆的地点及劳动结果;劳作的辛苦与执着;自己的田园之乐。 b.田园劳作之乐,按照自己的意愿生活,不在污浊的现实世界中失去自我。 c.对田园生活的喜爱,享受田园之乐的惬意、闲适的心情。自由背诵。
3、自由背诵、检查背诵
三、研读与赏析。
四、齐背课文
【评:从一点切入诗歌的教学,起到提纲挈领的作用。学生学的也很轻松,老师教的也很轻松。。最后回归到主题的提炼上——回归自然,回归自我。】
1、藤野先生
一、导入新课
二、检查预习情况
三、学习读第一自然段
1、提醒学生注意:为什么称为“清国留学生”?写清国留学生时,着重抓住了他们外貌的哪个特征来写?
辫子是民族压迫的象征,也是封建专制的象征。为什么这么说?请大家讨论。 “标致”的本意是什么?(漂亮),鲁迅真的认为这样很漂亮吗?(讨论)那他实际的意思是什么?(丑陋)──通过这里的讨论使学生理解什么是“反语”。
2、提问:第一段写清国留学生在干什么?(赏樱花)指读第二段:他们又在干什么?(学跳舞)他们做这些事应不应该呢?
鲁迅对这些只知游乐置国家民族命运于不顾者的鄙视,所以鲁迅离开东京到了仙台。从鲁迅和那些“清国留学生”的不同表现中我们能感受到鲁迅那种强烈的爱国主义精神,这正是本文叙事的一条暗线。请大家在下文的学习中注意这一点。 板书:鲁迅:强烈的爱国主义精神。(暗线)
四、课文的主体故事就发生在仙台,现在请大家根据地点的变换理清文章的结构,整体感知课文。
五、速读课文,练习一下概括能力,说出作者和藤野先生交往中的几件事 板书:1.添改讲义;2.纠正解剖图;3.关心解剖实习;4.想了解中国女人裹脚。 从这几件事中可看出藤野先生的什么特点? 板书:藤野先生:正直热诚、治学严谨
六、鲁迅为什么要到仙台去学医呢?课前已经让大家读了鲁迅的《〈呐喊〉自序》,谁能给解释一下?(请同学们给补充资料)
从这里我们能再次感受到鲁迅忧国忧民的情怀。
那么鲁迅后来为什么又弃医从文了呢?下节课我们一起来解开这个疑问。
【评:对于鲁迅先生的文章,学生学习起来是很困难。老师将文章的线索在第一课时就提出来。的确起到了醍醐灌顶的作用。适当的资料补充也激发了学生的兴趣,打消了学生的畏难情绪,活跃了气氛,增长了见闻,提高教学效果。】
列夫•托尔斯泰
一、导入
1、作者简介:
2、请学生介绍列夫•托尔斯泰(你对托尔斯泰了解多少?)
二、整体感知 大体分为两个部分:
(1-5)刻画托尔斯泰的外貌特征;
(6-9)描写托尔斯泰那非同寻常的眼睛。
三、精读文本
1、速读第一部分(1-5),四人一组讨论:作者从那些方面来刻画托尔斯泰的外貌特征? (须发、面部轮廓结构、面部特征、长相、拜访者的态度。)
2、各段各自抓住了什么特征?并找出文中比喻和夸张句子加以体会。 (1)须发的特点:多毛,浓密的胡须(反复描写) 比喻和夸张铺排兼用:
植被多于空地——喻“脸庞多毛”; 皱似树皮——喻黝黑的脸膛; 纠缠不清的树根——喻眉毛; 泡沫——喻鬈发;
像热带森林般浓密——须发; 卷起的滔滔白浪——大胡子。
作用:浓墨重彩的描绘,使人产生美的遐想。(比较插图) (2)面部轮廓结构:失调、崎岖、平庸,甚至粗鄙。
大量的排比:整个面部像粗制滥造的小屋;额头像树柴;皮肤像村舍外墙那样粗糙。 (3)面部特征:外貌丑陋
重点写面容表情,毫无避讳地展示了托翁外貌丑陋的一面。 (4)长相:普通
穿戴方面、职业方面、社会角色方面——意在表明托尔斯泰属于俄国普通大众。 关键句:他与全体俄国人民同呼吸共命运——揭示这一点,也就是揭示出托尔斯泰的人生追求和心路历程。
3、为何要写托尔斯泰的外貌令拜访者感到失望这一段呢?
写心目中的托尔斯泰与亲眼所见托尔斯泰的巨大反差,又一次全方位地了解了他的身材特点、言行特征、待客的方式,对他的形象又有认识,同时也是过渡段。
四、布置作业:
你觉得茨威格在对托尔斯泰的外貌刻画中,那些地方描写得最精彩?为什么?
【评:紧抓住描写手法的运用来教学是教师着重强调,通过对比让学生很容易地找出托尔斯泰的特点。美中不足之处在于师生之间的互动似乎少了些。可以将更多的主动交给学生,当然需要学生有高度的自觉性,老师对于教材的驾驭能力。】
海燕
一、学生齐读课文
二、研读赏析(以下问题先让学生小组讨论,而后教师明确)
1. 除了对海燕作直接描写外,文章还对海燕所处的典型环境即暴风雨来临前夕大海海面变化进行描写,这环境描写有什么作用?
明确:作品按时间的变化,写了“暴风雨就要来啦”的三个阶段的不同自然景象。这三个不同景象的变换表明了形势的愈益险恶、阶级斗争的日益激烈,海燕的英勇顽强的崇 高性格和坚定乐观的英雄气概在景象的变换中被步步深入地烘托和显现。环境描写还给作品带来浓厚的抒情气氛,增强了艺术的感染力。
2.课文既是写海燕,为什么还要写海鸥等水鸟呢?这样写有什么作用呢? 明确:这些海鸟心惊胆战、张皇失措、自私、逃避现实的情态,正是资产阶级和改良主义者心态的真实写照。真实地反映了1905年前后俄国资产阶级对待无产阶级的态度,字里行间寄寓着作者无情的嘲讽和蔑视。对比烘托出海燕勇敢执著、不畏强暴和勇于献身的革命乐观主义精神。
3、除象征对比烘托手法的运用外,本文还综合运用多种修辞手法。请判断下列句子运用了哪些修辞手法,并理解体会其表达作用。
(1)在乌云在乌云和大海之间,海燕象黑色的闪电,在高傲地飞翔。
明确:比喻和拟人。从形、色两方面生动形象地突出展现了海燕矫健、勇猛、善战的姿态。 (2)这个敏感的精灵,——它从雷声的震怒里,早就听出了困乏,它深信,乌云是遮不住太阳的,——是的,遮不住的!
明确:比喻、拟人、反复。运用比喻拟人的手法显示海燕的勇敢和智慧,说明无产阶级革命者高度的预见性和敏锐的洞察力。运用反复,语气肯定,表达海燕坚定不移的必胜信念。
三、体验反思
每个人的生活中,都会有温煦的爱的阳光照耀,也会有各种各样的“暴风雨”的考验。面临生活的“暴风雨”,我们应该怎么做呢?从勇敢的海燕身上是不是可以找到答案呢?
要点:我们应像海燕那样坚定自己的信念,明确自己的奋斗目标,勇敢地顽强地乐观地面对生活的“暴风雨”。
四、布置作业
请课外阅读现代作家郑振铎散文《海燕》并思考文后问题。
【评:这是《海燕》的第二课时,文章的教学充分吸取了前面教学的得失。将学生的积极性调动放在了重要的位置上,师生的互动也更强,问题的设置上面也有了很大的进步。更贴近学生的实际,更接近生活。】
罗布泊,消逝的仙湖
一、创设情境,激情入题
二、说文解字,扫清障碍
三、感知内容,探究写法。
1、对内容的把握。
文章写了过去的罗布泊是广阔美丽充满生机的湖泊,而现在胡杨林死亡、寸草不生,变成了一片死寂的荒漠。表达了作者对罗布泊生态环境遭破坏的痛惜之情及对悲剧制造者的人的愤怒之情。
2、对语言的积累。
修辞手法的运用及作用:
(1)多处运用了比喻的修辞,例如第13段,运用了比喻的修辞,作用是表现罗布泊终于消失的遗憾。
(2)拟人手法:作者将胡杨林、罗布泊拟人化,如“那奇形怪状的枯枝„„求救之手”“站在罗布泊边缘„„痛苦与无奈”赋予了人的感情,令人感情激荡,为自己盲目破坏生态环境而痛惜不已。
(3)排比手法:连用四个“盲目”,三个“救救”等都强烈的表达了作者的遗憾之情、谴责之情。
3、对写法的感悟。 (1)对比手法的运用:
以往的优美的罗布泊与现在的悲惨的罗布泊对比:表达了对人类破坏行为的憎恨。 胡杨林前后的不同,作用同上。 (2)一系列数字的引用。
11、12、13段的数据,说明破坏很严重。
四、质疑问难,畅谈收获
通过学习,明白了哪些你预习中不明白的疑难问题。还有什么疑惑?
五、联系实际,拓展延伸
请同学们选取自己喜欢的方式(可以写倡议书,可以写罗布泊的自述等,形式不限),抒发自己的心声。
【评:本课的教学继续升华了前面的交流经验,将课堂的主动权交给学生。完全是让学生为主唱了一出戏。教师的点拨也很精当,一句话切中要害,言简意赅。】
醉翁亭记
一、第三段释义讲解
1.学生逐句翻译,教师点拨。
2.本段共四句话,一句话是一幅图画,给每幅图起名字。 明确:滁人游图
太守宴图
众宾欢图
太守醉图
3.滁人游图中共写了哪几种人?太守宴图中有哪些佳肴?众宾靠什么欢?太守醉图中,太守的神态怎样? 4.本段写的什么?
明确:滁人、宾客、太守游山饮宴场景
前呼后应:本意是前面的人在呼喊,后面的人在应答。现多用来比喻写文章首尾呼应。 觥筹交错:本意是酒杯和酒筹交互错杂。现在多形容许多人相聚饮酒的热闹情景(常含贬义)。
二、第四段释义讲解
1.学生逐句翻译,教师点拨。 2.宴饮结束就要“归” 3.本段点出了三种“乐”,分别是什么? 这些乐中谁的乐境界最高?为什么? 明确:禽鸟之乐——游人之乐——太守之乐
衬托:用禽鸟之乐衬托游人之乐,用游人之乐衬托太守之乐。
4.太守一词全文出现了九次,直到最后才道出它是谁,揭开谜底。 5.纵观全文作者到底在“乐”些什么?包含哪些方面? 明确:一是“山水之乐”,并因“四时之景不同,而乐亦无穷也”,寄情山水排遣郁闷的欢乐;二是“宴酣之乐”,就地取材“山肴野蔌”,佐酒“非丝非竹”,众人“起坐喧哗”,太守“颓然其间”;三是“乐其乐”,自己虽被贬滁州,但经过自己的努力,使滁州百姓安居乐业,纵情山水,作者为他们的安乐而感到快乐,为经过自己的励精图治达到政通人和的地步而感到快乐。所谓先天下之忧而忧,后天下之乐而乐。这是一种“与民同乐”的理想境界。
本文中心思想把握两点:①作者借山水之乐派遣内心的郁闷
②表现“与民同乐”的政治理想
三、学后总结 1.古今异义词
2.词类活用
山行六七里
在山上,名词作状语。
有亭翼然临于泉上者
像鸟儿的翅膀,名词作状语。
名之者谁
命名,名词用作动词。
自号曰醉翁也
取名,名词用作动词。
而不知太守之乐其乐也
(前乐)以„„为乐,动词。(后乐)乐趣,名词。
3.“而”的一词多义,见课后练习二 4.判断句 “„„者„„也”
【评:中规中矩的一节文言文教学课。基础知识是落实到了实处的,没有花哨的形式与复杂的互动环节。但是学生是真正能够学到知识的。尤其是最后的总结部分,起到了画龙点睛的作用,突出了重点,指明了方向。让学生有的放矢。】
地 类
日 期
点 型 别 06.7宁讲.20 教院 座 级
06.7.宁讲20 教院 座 级
06.7.宁讲30 教院 座 级
06.8.宁讲2 教院 座 级
06.8.宁讲3 教院 座 级
06.9.本公23 校 开课 内
06.9.本公25 校 开课 内
06.10本公.15 校 开课 内
湖
06.11州南浔探.20 锦绣实究课 级
验中学
06.1
1本
级 组织者 市师训处 市师训处 市师训处 市师训处 市师训处 组英语组 组英语组 组英语组 市
活动内容 做一名智慧的教师 一堂好课的研究 英语教学的互动模式
教师礼仪
班级文化的建设与学生健康发展
Book1 Unit 2 Is this your pencil?
Book 2Unit4第一课时
Book 3Unit6第一课时
Book
2区
Unit9When was he
教研室
born?
Book2Unit10
公组英
I’m going to be a
.25 校 开课 内 语组
basketball player.06.12本公组英
Final revision
.23 校 开课 内 语组
英语组 06 学年第 2 学期教研活动记录表 日 地 类 级 组活动内容 期 点 型 别 织者
Book2
精
07.本区区Unit3What
品课送
3.28 校 级 教研室 are you doing for
教
vacation?
07.本讲校校
班主任的艺术
4.15 校 座 内 办
07.本教校校
关于说课
5.11 校 师论坛 内 办
07.本教校校
案例的撰写
5.25 校 师论坛 内 办
07.本公校教Book2 Unit9第6.8 校 开课 内 研组 一课时
07.本公校教Review of 6.29 校 开课 内 研组 Book1<下>
07.宁讲市师谈谈英语教师的7.18 教院 座 级 训处 基本素质
07.宁讲市师
插花的艺术
7.19 教院 座 级 训处
07.宁讲市师信息技术在教学7.20 教院 座 级 训处 中的运用
英语 组 07 学年第 1学期教研活动记录表 日 地 类 级 组
活动内容
期 点 型 别 织者
9研组陈制订本学期教学
月4日 讨 内 凤珠 计划
初中英语7年级
9宁听市市“Go for 月20日波八中课 级 教研室 it!”(Section A &
B) 课堂教学研讨会
区中学英语青年
10实听区区
教师课堂教学系列活
月16日验中学课 级 教研室
动一
10集组陈
集体备课
月23日 体备课 内 凤珠
10听组陈
7上Unit 7
月30日 课 内 力
区中学英语青年
11孔听区区
教师课堂教学系列活
月13日浦中学课 级 教研室
动二
11听组俞
8上Unit 10
月27日 课 内 位芬
12三听区区八年级课堂教学月4日 江中学 课 级 教研室 观摩研讨活动
12听组郑
8上Unit 12
月7日 课 内 竹亚
区中学英语青年
12庄听区区
教师课堂教学系列活
月11日桥中学课 级 教研室
动四
12听组陈
初三复习课
月18日 课 内 凤珠
英语 组 07 学年第 2学期教研活动记录表 日 地 类 级 组活动内容 期 点 型 别 织者
08
研组陈制订本学期教学
年2月
讨 内 凤珠 计划
26日
08
宁研市市宁波大市初三年
年3月
波七中 讨会 级 教研室 级英语复习研讨会
25日
4听组贺形容词比较级的
月8日 课 内 凤英 复习
4宁听区区区初中英语课堂月11日波九中课 级 教研室 教学“新生代”评比
5奉市初中英语“新
听市市
月8日化锦屏生代”课堂教学展示
课 级 教研室
至9日 中学 评比活动
4洪研区区初三英语复习研月15日塘中学讨会 级 教研室 讨活动
6听组叶
初三复习课
月10日 课 内 剑锋
7研组陈期末教学工作总
月1日 讨会 内 凤珠 结
英语组 08学年第 1 学期教研活动记录表 日地 类 级 组
活动内容
期 点 型 别 织者
9教研研区教本学期教学工.3 室 讨 级 研室 作安排
9研校教本校教学工作
本校
.10 讨 级 研组长 安排
Go For It! 七
9集校备
本校 年级上册Unit Two
.24 体备课 级 课组长
Section B
Go For It! 七年级上册 Unit 6
1江北听区教Section B 0.7 实验 课 级 研室 Go For It!
七年级上册 Unit 5 Section A
1听校陶 七年级上册
本校
0.14 课 级 竟楠 Unit 3 Section A
1本校 集校教初二学生英语
0.21 体备课 级
1区教竞0.28 研室 赛 级
1集
本校
1.11 体备课 级
1听
本校
1.25 课 级
1听
本校
2.2 课 级
区校校校
三江
听区
中学阶梯2.9 课 级
教室
12.23 12.30
1.6
1.1
3本校
课
听级
校
集校
本校
体备课 级 本校 课
听级
校
集校
本校
体备课 级
研组长 讲故事比赛
教学生英语能力研室 展示
教教学五认真检研组长 查
陈Unit 8 力 Section A
叶Unit 9 剑峰 Section A
一、Unit 11 Could you please clean your room? Section A
二、Go For It!
教八年级上Unit 11 研室 Could you please
clean your room? Section B 孔浦中学 郎敏老师
三、反思与点评
Go For It 九
郑
年级 Unit 1
1竹亚
Section A 备Go For It 复课组长 习课
Go For It 八
贺
年级 Unit
凤英
12 复习
教
教学常规检查
务处
期 7
4-6
英语组 08学年第 2 学期教研活动记录表 日 地 类 级 组
活动内容
点 型 别 织者 2.1教研研区教本学期教学工
室 讨 级 研室 作安排 2.2研校组本校教学工作
本校
讨 级 长 安排
集校组 Three
3.3 本校
体备课级长 Section B
七年级下册
3.5洪塘听区教
八年级下册
中学 课 级 研室
九年级
完形填空解
国际听市教
题、表达研讨课、
7 学校 课 级 研室
考试说明解读。
3.2听校陈被动语态复习
本校
4 课 级 凤珠 课
七年级下册
3.3听市教
余姚 八年级下册
0-31 课 级 研室
3.1
4.1妙山
听7 中学多媒
体教室
课 级 4.2江花
1 小学电脑
论室 坛 级 4.28 本校
集体备课级5.5 本校 听课 级 5.12 本校 听课 级 5.19 本校
听课 级 5.2区教6 研室
级 6.2 本校
听课 级 6.1集6 本校 体备课级
九年级
七年级下册Unit 8 I’d like some noodles. Section A
区教八年级下册
研室 Unit 8 Why don’t
you get her a scarf? Section A
教学反思与互动点评
区教英语教师多媒
研室 体课件制作比武
校教教学五认真检
研组长 查
校陈
Go For It 八
力
年级Unit 8
Section A
校俞
Go For It 八
位芬
年级 Unit 9
Section A
校郑Go For It 九
竹亚 年级 Unit 11 复习
区教学生英语能力
研室 展评
校陶Go For It 七
竟楠 年级 复习
校教
研组长
教学常规检查
2011 年3 月29 日下午,我在石龙二中五楼电教室听了一节由广州市东 环中学朱万秋老师执教的初中音乐课《友谊地久天长》,以下是听课记录:
一、组织教学 学生听音乐进课室,师生问好。
二、新课教学
(一)、新歌导入 播放一段电影视频,请学生欣赏一首音乐《一路平安》 请大家思考并回答一下问题:
1、这首乐曲与哪一首歌的旋律相似?
2、这首乐曲的情绪怎样?
3、这首乐曲是几拍子?
4、影片中男女主人公在跳什么舞蹈?
5、你觉得影片中乐手们问水面要演奏完就熄灭蜡烛?
6、你指导这部影片的片名是什么吗?
7、为什么在着幸福、浪漫的时刻,影片中的音乐是忧伤而不是 明朗、欢快的?您觉得它暗示了什么?
8、你认为这首音乐适合出现在舞会的开始还是结束?
我的思考:应该在让学生听音乐之前就将问题提出,以让学生带 着问题去清晰的学习。所有的回答应该充分相信学生,让学生回答。
(二)欣赏电影《魂断蓝桥》与《友谊地久天长》背景 学生欣赏视频与音乐,教师解说。
(三)学生第一次听歌曲 第一遍:要求学生边听边拍重拍。 第
二遍:让学生边打拍边唱。 第三遍:请学生站起来唱。
我的思考:
1、不能在不了解学生是否会唱的情况下,就贸然请学 生演唱。
2、教师的演唱不是很完美,声音太大,没有调整好嘴巴与话 筒的距离,让声音显得很噪、沙哑(在后面进行旋律线教学时演唱比较 好、舒服)。
3、在学生演唱的时候,教师唱得比学生还大声,是不信 任学生的表现,而且在这个时候教师没有足够的注意力去留意学生的演 唱的。
4、教师的演唱感情不够投入。
5、教师背着学生弹琴与伴奏不是 很合理,对学生的不尊重,也关注不了学生的表情甚至演唱。
(四)歌曲教唱
1、教师弹琴,学生听伴奏试唱。
2、教师指出演唱中的不足,并及时纠正。
3、在教师的伴奏下,学生唱全曲。
(五)分析《友谊天长地久》中的音乐要素
1、节拍:四四拍,弱起小节。
2、节奏:附点节奏,倾向性强。
3、旋律:素材简练,婉转流畅。
4、曲式结构:起承转合,A A1 A3 A4
(六)分组请学生跟老师进行演唱接龙游戏
1、第一组演唱:开始唱走音了 教学用语:啊!你们唱到哪里去了?不要紧,我们再来。
2、第二组演唱较好
(七)欣赏不同歌词的《友谊地久天长》
1、欣赏两首不同歌词的《友谊地久天长》(
1、中文版;
2、英语版) 我的思考:明明是说让学生欣赏视频与音频里的演唱,但在前奏 音乐结束后,教师偏又紧紧抓住演唱的机会,再犯抢唱机会的毛病。 让学生听到更多的是老师的歌声,而不是老师提议让学生好好欣赏的 音乐!
2、让学生听与演唱三首通俗的关于友谊的歌曲 藏天朔《朋友》:学生不是很熟悉,教师应该多唱。 谭咏麟《朋友》:学生会唱,教师及时把演唱机会让给学生。 周华健《朋友》:第一遍教师用竖笛演奏主旋律,学生演唱。第二遍 教师与学生一起演唱,但是教师一开始没有找准音,起音过高了,没 有把握好,不过很快就以低八度接唱上了,随机应变能力较好。
三、教学小结
1、教师问:友谊是什么样子的? 学生没有办法回答
2、让我们唱着《友谊地久天长》,传递永恒的友谊! 我的思考:教师让学生出来演唱互动,没有掌握初中生的心理, 有些强这些学生所难,以致学生不敢表演,听不到声音。
一网络预备知识
1. IP 主机的标识,32bit 无符号的二进制,通常用点分十进制表示
3个基本类:
A 类:最高字节高位0 1 + 3 网络号 + 主机号
0.0.0.0191.255.255.255 2^162
192.0.0.0239.255.255.255
用途:常用作组播地址
E 类:最高字节高位1111 0
240.0.0.065535
150000 //系统用的
5000124]; //填充字段
本地地址结构体 struct sockaddr_un {
sa_family_t sun_family; // 协议族
char sun_path[108];
//108字节协议地址
};// 传参
void * arg ;
通用地址结构体:
struct sockaddr {
sa_family_t sa_family; // 协议族
char sa_data[14]; //14字节协议地址
};
一创建套接字
Int socket(int domain, int type, int protocol); 功能
domain:指明所使用的协议族,通常为PF_INET/AF_INET,表示互联网协议族(TCP/IP协议族);
type:指定socket的类型:SOCK_STREAM (TCP)或SOCK_DGRAM(UDP) protocol:协议的编号通常赋值"0" 返回值
Socket()调用返回一个整型socket描述符,你可以在后面的调用使用它。
失败返回 -1 Socket接口还定义了原始Socket(SOCK_RAW),允许程序使用低层协议。 绑定端口
Int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 功能:把sockfd 绑定一个具体的端口 sockfd : 描述符
addr : 本机的结构ip的地址不允许绑定非本机IP 如:(192.168.2.10) addrlen: 告知内核ip地址大小, 必须为实际的地址大小网络为16 正确返回0 失败返回-1
udp接收数据端
Ssize_t recvfrom(int sockfd,void *buf,size_t len,int flags,struct sockaddr *src_addr,socklen_t *addrlen);) 功能接收数据 Sockfd 描述符
Buf 存放接收到的数据
Len 最多可以接收的数据大小
Flags 接收的方式(默认是阻塞,通常是0) Src_addr 获取发送端的ip地址信息
Addrlen 告知内核发送端ip地址大小(结构大小) 返回值
成功返回实际接收的数据大小
返回值如果为0
表示对方已关闭 失败返回 -1
udp发送数据端
Ssize_t sendto(int sockfd,const void *buf,size_t len,int flags,struct sockaddr *dest_addr,socklen_t addrlen); 功能:发送数据 Sockfd : 描述符
Buf: 用户需要发送的数据缓存地址 Len:用户最多发送的数据大小
Flags:发送方式(默认是阻塞,通常设为0) Dest_addr: 当前数据发送的目标主机ip地址值
Addrlen: 告知目标主机ip地址的大小(结构大小) 返回值
成功返回实际发送的数据大小 失败返回 – 1
Tcp申请三次握手(客户端)
Int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen); 实现客户端与服务器的连接 Sockfd: 套接字描述符 Addr:服务器ip结构地址
Addrlen:服务器ip结构地址大小 成功返回 0
失败返回-1 注意:再次申请,它会断开先前建立的连接,重新建立新的连接连接:获知对方存在
(Tcp)监听(服务器端)
Int listen(int sockfd, int backlog); 功能:实现对客户端请求的监听(队列机制) Sockfd: 套接字描述符
Backlog:队列的长度,一般设为5 追打可设为8 返回值:
成功返回 0,失败返回 -1
(Tcp)回复三次握手(服务器端) 功能:回复客户端握手申请,建立连接
Int accept(int sockfd,struct sockaddr *addr, socklen_t *addrlen); Sockfd: 套接字描述符
Addr: 对方(客户端)ip 地址
Addrlen:对方(客户端)ip 地址大小
成功返回非负整数(新的socket描述符)失败返回
-1
Tcp 数据接收
Ssize_t recv(int sockfd,void *buf,size_t len,int flags); 功能接收数据
Sockfd: (客户端)是套接字描述符(服务器端)是accept()的返回值 Buf: 存放接收到的数据
Len: 最多可以接收的数据大小
Fags: 发送方式(默认是阻塞,通常设为0) 成功返回实际接收的数据大小失败返回 -1; 返回值如果为0
表示对方已关闭
Tcp数据发送
Ssize_t send(int sockfd,void *buf,size_t len,int flags); 功能:发送数据
Sockfd : (客户端)是套接字描述符(服务器端)是accept()的返回值 Buf: 用户需要发送的数据缓存地址 Len:用户最多发送的数据大小
Flags:发送方式(默认是阻塞,通常设为0) 成功返回实际发送的数据大小失败返回 -1 关闭套接字 @1
Int Shutdown(int sockfd,int how) 功能:指定方式关闭套接字 Socket: 套接字描述符
How: SHUT_RD 或0 (关闭读) SHUT_WR或1(关闭写) SHUT_RDWR或2(关闭读写)相当于close() 成功返回
0 失败返回 -1 @2
Int close(int sockfd) 关闭套接字
Socket: 套接字描述符
成功返回
0 失败返回 -1
UDP 客户端创建流程
1 初始化网络地址结构体(服务器端)
struct sockaddr_in ser_addr ;
bzero(&ser_addr,sizeof(ser_addr)); ser_addr.sin_family = AF_INET; ser_addr.sin_port = htons(50001); 服务器端口号 -------网络字节序
ser_addr.sin_addr.s_addr = inet_addr("192.168.1.230") ; 服务器点分制地址-》网络字节序 2 创建数据报套接字
Int sockfd = socket(AF_INET,SOCK_DGRAM,0);(数据报套接字) 3 发送数据到服务器端 Int sento_udp = sendto(sockfd,buf,strlen(buf)+1,0,(struct sockaddr *)&ser_addr,sizeof(struct sockaddr_in));
(服务器地址) 4 接收服务器端的回复
Int recvfrom_udp = recvfrom(sockfd,buf, sizeof(buf),0,NULL,NULL); 5 关闭套接字
Close(sockfd);
UDP 服务器端创建流程
1 初始化网络地址结构体(服务器端)
struct sockaddr_in ser_addr ;
bzero(&ser_addr,sizeof(ser_addr)); ser_addr.sin_family = AF_INET; ser_addr.sin_port = htons(50001); 服务器端口号 -------网络字节序
ser_addr.sin_addr.s_addr = inet_addr("192.168.1.230") ; 服务器点分制地址-》网络字节序 2 创建数据报套接字
Int sockfd = socket(AF_INET,SOCK_DGRAM,0);(数据报套接字) 3 绑定套接字
Int bind_udp = bind(sockfd,(struct sockaddr *)&ser_addr,sizeof(struct sockaddr_in));
(服务器地址) 4 接收客户端请求
struct sockaddr_in client_addr ; size = sizeof(struct sockaddr_in) int recvfrom_udp = recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr *)&client_addr,&size); (客户端地址) 5
回复客户端
Int sendto_udp =
sendto(sockfd,buf,recvfrom_udp,0,(struct sockaddr *)&client_addr, sizeof(struct sockaddr_in))
(客户端地址) 6 关闭套接字
Close(sockfd);
TCP 客户端创建流程
1 初始化网络地址结构体(服务器端)
struct sockaddr_in ser_addr ;
bzero(&ser_addr,sizeof(ser_addr)); ser_addr.sin_family = AF_INET; ser_addr.sin_port = htons(50001); 服务器端口号 -------网络字节序
ser_addr.sin_addr.s_addr = inet_addr("192.168.1.230") ; 服务器点分制地址-》网络字节序 2 创建流式套接字
Int sockfd = socket(AF_INET,SOCK_STREAM,0);(流式套接字) 3
申请三次握手
Int connect_tcp = connect (sockfd,( struct sockaddr *)&ser_addr,sizeof(ser_addr))
(服务器地址) 4 发送数据到服务器端
Int send_tcp = send(sockfd,buf,strlen(buf) + 1,0) 5 接收服务器端的回复
Int recv_tcp = recv (sockfd,buf,sizeof(buf),0) 6 关闭套接字
Close(sockfd);
TCP 服务器端创建流程
1 初始化网络地址结构体(服务器端)
struct sockaddr_in ser_addr ;
bzero(&ser_addr,sizeof(ser_addr)); ser_addr.sin_family = AF_INET; ser_addr.sin_port = htons(50001); 服务器端口号 -------网络字节序
ser_addr.sin_addr.s_addr = inet_addr("192.168.1.230") ; 服务器点分制地址-》网络字节序 2 创建数据报套接字
Int sockfd = socket(AF_INET,SOCK_DGRAM,0);(流式套接字) 3 绑定套接字
Int bind_tcp = bind(sockfd,(struct sockaddr *)&ser_addr,sizeof(struct sockaddr_in));
(服务器地址) 4
监听客户端请求
Int listen_tcp = listen(sockfd,5)
一般为5 最大为8 5 回复客户端的三次握手请求
struct sockaddr_in client_addr ; int len = sizeof(struct sockaddr_in);
Int connectfd = accept(sockfd,( struct sockaddr *)&client_addr,&len)
( 客户端地址) 6 接收客户端请求 7 8 Int recv_tcp = recv(connectfd,buf,sizeof(buf),0); 回复客户端
Int send_tcp = send(connectfd,buf,recv_tcp,0); 关闭套接字
Close(sockfd);
Close(connectfd); 1 .TCP CS 模型
client:
socket //创建流式套接字
|
ser_addr:(struct sockaddr_in) //目标地址结构体(服务器)
|
connect()//3次握手
|
sendto/send/write
|
recvfrom/recv/read
|
.......
|
close()/shutdown()
server:
(1)循环服务器,可以多个客户端服务,但是不能在同一时刻
ser_addr :(struct sockaddr_in)//本机的地址结构体
|
socket (流式套接字)
|
bind(使套接字具有地址属性)
|
listen(创建监听队列)
| while(1) {
accept(握手建立连接,获取对方地址) | while(1) {
recvfrom/recv/read //接收对端(客户端)信息
|
sendto/send/write //向对端回射信息
} |
..... } close
(2) 并发服务器:可以同一时刻为多个客户端服务
ser_addr :(struct sockaddr_in)//本机的地址结构体
|
socket (流式套接字,sockfd)
|
bind(使套接字具有地址属性)
|
listen(创建监听队列)
| while(1) { connectfd = accept(握手建立连接,获取对方地址)
|
pid = fork()
if(pid == 0)
{
close(sockfd);
while(1)
{
recvfrom/recv/read //接收对端(客户端)信息
|
sendto/send/write //向对端回射信息
}
} close(connectfd); | ..... } close(sockfd);
2. 分析三次握手
client
server
SYN = 1 (请求标志)
seq_no = 0(client)
第一次
------------------------------>
SYN = 1(请求标志)
ACK = 1(应答标志)
seq_no = 0(server), ack_no = 1 (==seq_no(client) + 1) 第二次<------------------------------
ACK = 1(应答标志)
seq_no = 1(ack_no(server)),ack_no = 1 ( == seq_no(server) + 1) 第三次 ------------------------------>
3.数据包分析
一帧数据(TCP) = mac头 + IP头 + TCP头 + 用户数据
ttl: 数据包每经过一个路由器,如果停留的时间小于1s,ttl 减一,当ttl 小于0时数据丢弃掉
第三天
fcntl
int fcntl(int fd, int cmd, ... /* arg */ ); 获取或改变文件描述符的属性,一般我们需要改变文件状态标志位 @1 fd : 文件描述符 @2 cmd : 对文件描述符的操作(一般可以获取或者设置当前 file status flags) (F_GETFD,F_SETFD) @3 ...... : 不定参,取决于cmd @4 成功返回值取决于 cmd
失败返回-1 例如 @1
int flag = fcntl(0,F_GETFL)
查看属性有返回值 @2 fcntl(0,F_SETFL,flag | O_NONBLOCK)
添加属性无返回值
IO的特性与接口没有关系,与描述符属性有关,调用fcntl/ioctl (可以直接把你用户的命令传递到内核,可以实现对底层驱动的控制)
一 IO 模型 (4种)
1. 阻塞IO
当资源未准备好时,程序睡眠或者等待,不浪费CPU,效率低,实现非常简单,但是它是应用最广泛的IO
read(sockfd,buf,BUFF_SIZE )/recv/recvfrom
2. 非阻塞IO
当资源未准备好时,直接返回错误码(errno),不断的轮循,浪费CPU,效率高
3. 信号驱动IO(SIGIO)
一种异步的通信机制,底层(内核)向上层(用户层)发信号(SIGIO),当资源可用时,内核向当前进程发送SIGIO信号,用户捕捉(signal)此信号,读取IO资源,如果用户不捕捉,进程会被杀死
signal(SIGIO,hander);//更安全 获取套接字的原有属性
int flag = fcntl(sockfd,F_GETFL);//O_NONBLOCK 添加异步属性,文件描述符可以被多个进程打开,此时内核不知信号发给谁 fcntl(sockfd,F_SETFL,flag | O_ASYNC); 获取当前描述符对应的默认进程号(默认为0) pid = fcntl(sockfd,F_GETOWN ); 改变描述符对应的进程号
fcntl(sockfd,F_SETOWN,getpid());
4 . IO 多路复用
可以同时对多个IO控制,哪个准备好了,执行哪个
IO 多路复用:
1. 建立一个统计表:
fd_set readfds; 2. 添加fd到表中
FD_ZERO(&readfds); //将表清空
FD_SET( fd,&readfds); //将fd 加入 readfds 3 . 监测readfds 这张表(监测已经加入表的fd),会将没有就绪的fd 清0 n = select(fd+1,&readfds,NULL,NULL,NULL); //n ==>有多少fd 就绪,此时不知道哪个就绪 4. 判断哪个fd 就绪,这张表只会保存就绪的fd
FD_ISSET(fd,&readfds) == 1
就绪
FD_ISSET(fd,&readfds) == 0
未就绪
相关函数
void FD_CLR(int fd, fd_set *set); int FD_ISSET(int fd, fd_set *set); void FD_SET(int fd, fd_set *set); void FD_ZERO(fd_set *set);
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 注意:描述符不受限与套接字,任何描述符都行
nfds:select()函数监视的描述符数的最大值,一般取监视的描述符数的最大值+1, 其上限设置在sys/types.h中有定义 #define FD_SETSIZE 256
readfds:select()函数监视的可读描述符集合 wtitefds:select()函数监视的可写描述符集合 errnofds:select()函数监视的异常描述符集合
timeout:select()函数监视超时结束时间,取NULL表示永久等待 返回值:返回总的位数这些位对应已准备好的描述符,否则返回-1 相关宏操作:
FD_ZERO(fd_set *fdset):清空fdset与所有描述符的关系 FD_SET(int fd, d_set * fdset):建立描述符fd与fdset得关系 FD_CLR(int fd, d_set * fdset):撤销描述符fd与fdset得关系
FD_ISSET(int fd, d_set * fdset):检查与fdset联系的描述符fd是否可以读写,返回非零表示可以读写
5. select()函数实现IO多路复用的步骤 (1)清空描述符集合
(2)建立需要监视的描述符与描述符集合的关系 (3)调用select函数
(4)检查监视的描述符判断是否已经准备好 (5)对已经准备好的描述符进程IO操作
表的存放规则:
fd_set readfds; FD_ZERO(&readfds); //将表清空
FD_SET(0,&readfds); //将0 加入 readfds
FD_SET(3,&readfds); //将3 加入 readfds
FD_SET(4,&readfds); //将4 加入 readsds
表头:
|
| 1 0 0 1 1 0 ........... ………… 0
| | | | |
|
| 0 1 2 3 4 5
1023
n = select(4+1,&readfds,NULL,NULL,NULL); 检测就绪,返回就绪个数,未就绪的清零 (由于处理器的速度很快,n通常为1)
若此时0就绪:(n = 1) 表头:
|
| 1 0 0 0 0 0 ........... ………… 0
| | | | |
|
| 0 1 2 3 4 5
1023
若此时有0 和3同时就绪(n = 2) 表头:
|
| 1 0 0 1 0 0 ........... ………… 0
| | | | |
|
| 0 1 2 3 4 5
1023
判断是那个fd就序
If(FD_ISSET(fd,&readfds) == 1)
{
。。。。。。。
}
例:
int sockfd,maxfd,n; int connectfd ,fd; char buf[BUFF_SIZE];
fd_set readfds, tempfds;
maxfd = sockfd;
FD_ZERO(&readfds);
tempfds = readfds;
while(1) { tempfds = readfds; FD_SET(sockfd,&tempfds); //如:有50 client,某一时刻只有sockfd就绪
if(-1 == (n = select(maxfd + 1,&tempfds,NULL,NULL,NULL)))
exit(-1);
for(fd = 0; fd <= maxfd ; fd ++)
{
if(FD_ISSET(fd,&tempfds)) //套接字两种都有可能就绪,如果不是sockfd,那么必定是以连接的套接字
{
if(fd == sockfd) { if(-1 == (connectfd = accept(sockfd,NULL,NULL)))
exit(-1); puts("hander shake !!! ");
FD_SET(connectfd,&readfds); //将新的客户端添加至只读表
maxfd = maxfd > connectfd ? maxfd : connectfd; //时刻保证maxfd 最大
}else //不能用if(fd == connectfd) { bzero(buf,BUFF_SIZE);
if(-1 == (n = recv(fd,buf,BUFF_SIZE,0)))
exit(-1); if(n == 0) {
FD_CLR(fd,&readfds); //将退出的客户端从只读表清除 close(fd);
if(maxfd == fd) {
while(1) {
maxfd --;
if(!FD_ISSET(maxfd,&readfds)) //maxfd 是最后一个需
要监测的
continue;
else {
break;
}
}
}
}
printf("[%d] client buf:%s ",n,buf);
}
} } }
获取套接字属性信息
int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
sockfd套接字描述符 level选项级别SOL_SOCKET(man 7 solcket)(通用套接字)
IPPROTO_IP
(man 7 ip)得到选项名
IPPROTO_TCP
(man 7 tcp) optname选项名
SO_BROADCAST(广播)……
optval存放获取到的选项值的缓冲区地址&n
int n; optlen存放缓冲区长度的地
&len
int len = sizeof(n) 成功返回 0
失败返回 -1
第四天
设置套接字属性信息
int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);
sockfd套接字描述符
evel选项级别SOL_SOCKET
(man 7 solcket) (通用套接字)
IPPROTO_IP
(man 7 ip)得到选项名
IPPROTO_TCP
(man 7 tcp) optname选项名
SO_BROADCAST(广播)IP_ADD_MEMBERSHIP(组播)
组播结构体:struct ip_mreqn { truct in_addr imr_multiaddr; /* 组播ip
struct in_addr imr_address; /* 服务器ip
int imr_ifindex;
/* interface index */通常为0
}; optval存放需要设置的选项值的缓冲区地址&n int n = 1(打开广播), int n = 0(关闭广播) optlen存放缓冲区长度的地址
sizeof(n) 成功返回 0
失败返回 -1
Int on = 1 setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on)) 使先前进程创建的端口能重新绑定
一单播广播组播
1. 单播:接收方为一个,用户发送的包,可以到达指定的主机,一对一的通信, 数据包经过路由器或者交换机,不经过复制,需要转发
好处:服务器可以及时的为客户端响应 坏处:如果客户端的个数太大,会造成超载
host1 -------route/swith(转发)-----------> host2 2. 广播:接收方为局域网内,所有主机, 属于一对所有,数据包经过路由器或者交换机 需要经过复制,转发,不存在CS,存在发送方,和接收方,使用UDP 注意:默认不允许发送 好处:效率高
坏处:如果大量发送会造成广播风暴
广播地址:主机号为全1,如,C类私有网络:192.168.1.255 广播MAC :FF:FF:FF:FF:FF:FF
host1------------route/swith(复制,转发) ------------------->host2
|
-------->host3
|
....
|
-------->host254
udp广播发送方:默认不允许
1). 创建数据报套接字(填充地址结构体(广播IP))
2). 设置套接字属性,允许发送广播包 (setsockopt) int on = 1;
setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(int ))(设置属性)
int on ; socklen_t len ; len = sizeof(on); getsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,&len)
2). 发送数据报到广播ip
udp广播接收方:默认允许
1). 创建数据报套接字(填充地址结构体(广播ip))
2). 绑定广播地址(ip)
3). 直接接收对方ip
3. 组播
接收方为局域网多个主机,将具有相同需求的主机加入一个组,然后组内任何一个主机的包,组内所有成员都会收到,是广播的优化 优点:有针对性,相对广播可以降低网络带宽 缺点:相对单播,缺少校错机制
组播地址:D类IP 224.0.0.0 - 239.255.255.255 组播的MAC:01:00:5e:*.*.* (IP地址的低23bit)
(获取属性) host1------route(IGMP 网络组管理协议网络层)/swith(复制,转发) ------->host2
|
------------------------->host3
|
....
|
-------->host(多个<= 254)
Udp组播发送方
1). 创建数据报套接字(填充地址结构体组播ip)
2). 直接发送组播ip
Udp组播接收方
1). 创建数据报套接字(填充地址结构体组播IP)
2). 绑定组播地址(ip)
3). 设置属性,将当前主机ip加入组(IGMP) //需要路由器
struct ip_mreqn mulgroup; bzero(&mulgroup,sizeof(mulgroup)); mulgroup.imr_multiaddr.s_addr = inet_addr(组播ip);
mulgroup.imr_address.s_addr = inet_addr(本机ip); mulgroup.imr_ifindex = 0;
setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mulgroup,sizeof(mulgroup))
4). 直接接收对方ip
第五天: 说明:
网络中套接字通常是,当没有相应资源时是阻塞的,如果有资源可读,就会直接返回 网络中环境是异常复杂的,这个时候我们对异常处理,需要超时检测
一超时检测
1. 设置套接字选项
Struct timeval tv; 套接字超时属性 (结构体)
tv.tv_sec = 3; 秒
tv.tv_usec = 1000; 微秒
setsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,&tv,sizeof(tv)) connectfd = accept(sockfd,NULL,NULL) connectfd 继承sockfd的属性(这里应用的是超时属性) if(errno == EAGAIN)continue;
2. select
//如果没有任何一个fd就绪则超时,超时返回0,每次超时之后,tv值不会重置,需要用户自己重置
struct timeval tv; tv.tv_sec = 2; tv.tv_usec = 0; n = select(sockfd + 1,&readfds,NULL,NULL,&tv)) if(n == 0) {
printf("timeout %d .... ",++count);
continue; }
3. alarm信号 //特性不会阻塞,会更新
/* function: 中断当前进程阻塞的系统调用,在哪里阻塞在哪里中断
signum: 捕捉的信号
act: 设置之后的信号属性
oldact: 获取先前默认的属性
*
int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact);
struct sigaction {
void (*sa_handler)(int); //signal 的信号处理函数
void (*sa_sigaction)(int, siginfo_t *, void *); //sigaction最早的信号处理函数
sigset_t
sa_mask; //信号屏蔽码,可以屏蔽指定信号
int
sa_flags; //信号属性
void (*sa_restorer)(void); //linux 不支持
};
二 UNIX 域套接字编程
1. 本地(本机)进程间通信
2. 不经过OSI /TCP/IP 体系结构,不存在打包和拆包过程
3. 可以完全套用TCP/UDP CS 模型
练习: 实现UNIX本地进程通信
三 tftp 实现
注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:iwenmi@163.com。举报文章