`

简单易懂的组播(课本)

    博客分类:
  • java
阅读更多

1,不断重复广播一则新闻。

Code:
  1. packageMulSocket.fromBook;
  2. importjava.net.*;
  3. publicclassBroadCastextendsThread{
  4. Strings="今天天气好晴朗,处处好风光!";
  5. intport=5858;//组播的端口
  6. InetAddressgroup=null;//组播组
  7. MulticastSocketsocket=null;//多点广播套接字
  8. BroadCast(){
  9. try{
  10. group=InetAddress.getByName("239.255.8.0");//设置组播组为239.255.8.0
  11. socket=newMulticastSocket(port);//多点广播套接字将在port端口广播
  12. socket.setTimeToLive(0);//多点广播套接字发送数据报范围为本地网络
  13. socket.joinGroup(group);
  14. //加入组播组,加入group后,socket发送的数据报可以被加入到group中的成员接收到
  15. }catch(Exceptione){
  16. }
  17. }
  18. publicvoidrun(){
  19. while(true){
  20. try{
  21. DatagramPacketpacket=null;//待广播的数据报
  22. bytedata[]=s.getBytes();
  23. packet=newDatagramPacket(data,data.length,group,port);
  24. System.out.println(newString(data));
  25. socket.send(packet);//广播数据报
  26. sleep(2000);
  27. }catch(Exceptione){
  28. System.out.println(e.toString());
  29. break;
  30. }
  31. }
  32. }
  33. publicstaticvoidmain(Stringargs[]){
  34. newBroadCast().start();
  35. }
  36. }

2加入组播组,接收广播数据

Code:
  1. packageMulSocket.fromBook;
  2. importjava.net.*;
  3. importjava.awt.*;
  4. importjava.awt.event.*;
  5. importjavax.swing.*;
  6. publicclassReceiveextendsJFrameimplementsRunnable,ActionListener{
  7. privatestaticfinallongserialVersionUID=1L;
  8. intport;//组播的端口
  9. InetAddressgroup=null;//组播组的地址
  10. MulticastSocketsocket=null;//多点广播套接字
  11. JButtonstartReceive,stopReceive;
  12. JTextAreashowArea;
  13. Threadthread;//负责接收信息的线程
  14. booleanstop=false;
  15. publicReceive(){
  16. super("定时接收信息");
  17. thread=newThread(this);
  18. startReceive=newJButton("开始接收");
  19. stopReceive=newJButton("停止接收");
  20. startReceive.addActionListener(this);
  21. stopReceive.addActionListener(this);
  22. showArea=newJTextArea(10,10);
  23. JPanelnorth=newJPanel();
  24. north.add(startReceive);
  25. north.add(stopReceive);
  26. Containercon=getContentPane();
  27. con.add(north,BorderLayout.NORTH);
  28. con.add(newJScrollPane(showArea),BorderLayout.CENTER);
  29. port=5858;
  30. try{
  31. //初始化一气呵成
  32. group=InetAddress.getByName("239.255.8.0");
  33. socket=newMulticastSocket(port);
  34. socket.joinGroup(group);
  35. }catch(Exceptione){
  36. }
  37. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  38. setSize(320,300);
  39. validate();
  40. setVisible(true);
  41. }
  42. publicvoidactionPerformed(ActionEvente){
  43. if(e.getSource()==startReceive){
  44. if(!(thread.isAlive())){
  45. thread=newThread(this);
  46. stop=false;
  47. }
  48. try{
  49. thread.start();
  50. }catch(Exceptionee){
  51. }
  52. }
  53. if(e.getSource()==stopReceive){
  54. stop=true;
  55. }
  56. }
  57. publicvoidrun(){
  58. while(true){
  59. bytedata[]=newbyte[8192];
  60. DatagramPacketpacket=null;
  61. packet=newDatagramPacket(data,data.length,group,port);
  62. try{
  63. socket.receive(packet);
  64. Stringmessage=newString(packet.getData(),0,packet
  65. .getLength());
  66. showArea.append("/n"+message);
  67. showArea.setCaretPosition(showArea.getText().length());
  68. }catch(Exceptione){
  69. }
  70. if(stop==true)
  71. break;
  72. }
  73. }
  74. publicstaticvoidmain(Stringargs[]){
  75. newReceive();
  76. }
  77. }

思路明确简单易懂。

分享到:
评论

相关推荐

    初识人工智能教案.pdf

    合作体验部分,学生分成四组,每组完成一个体验任务,任务完成后,每组转播一个同学的屏幕与其他同学交流体验的过程和方法。体验活动包括随“机”应变、棋乐无穷、各“试”各“样”、译来译出等,设计意图是让学生...

    小学英语 1A Unit 1 My Classroom教案 牛津版.doc

    打开学生课本至第2页,带领全班朗读指令,或播放录音,让学生根据指令执行动作,用手指向对应的图片,建立声音与图像的联系。 - **任务后阶段**:教师发出更复杂的指令,如针对男生、女生和全班的指令,让学生执行...

    五年级英语下册 unit1(1)教案 湘少版.doc

    - 再次播放录音,每次说完一句话后暂停,让学生指向对应的图片,并配合简单的手势帮助理解。 - 第三次播放录音,让学生个别或分组重复句子。 3. 学习新词汇: - 播放录音或逐个念出单词,学生指向对应的图片。 ...

    Flash CS5二维动画制作案例教程[段欣][案例及素材]

    例如,模块1可能涵盖基础绘图和简单动画的制作,模块2可能涉及更复杂的形状补间,模块3可能讲解声音的处理,模块4至8逐步提升难度,涵盖更多高级技术和实际应用。 7. **案例教学**:书中每个模块都包含具体的案例,...

    四年级英语上册 Unit9 At home教案 沪教牛津版(三起).doc

    然后,学生两人一组进行对话角色扮演,模仿课本第31页的对话。选取几组学生在全班面前表演。阅读"lost dog"的通知,让不同学生重复句子。接着,学生帮助完成口头报告,如"My father was at home at 6:30."。分发复印...

    手语合成系统网络版软件

    经过简单扩展,可以涵盖现有中学课本内容。合成手语自然逼真,可懂度高。应用逼真虚拟人演示的合成手语手势准确自然,具有协调的唇动与表情。经聋校测试,指拼、单词、句子的平均可懂度分别为:92.95%,88.23%,...

    使用FLEX 和 Actionscript开发FLASH 游戏(七)-1

    在第六部分,我们已经实现了简单的碰撞检测,但敌机被击中后只是简单消失,缺乏生动性。为了解决这个问题,第七部分的重点是引入动画机制,使游戏更加引人入胜。 首先,我们要理解在Flash中动画的基本原理。Flash以...

    手语合成系统安装软件NEW

    经过简单扩展,可以涵盖现有中学课本内容。合成手语自然逼真,可懂度高。应用逼真虚拟人演示的合成手语手势准确自然,具有协调的唇动与表情。经聋校测试,指拼、单词、句子的平均可懂度分别为:92.95%,88.23%,...

    小学三年级英语家长会详解PPT课件.pptx

    放磁带播放英语音频,查看学校的短信通知,以及在作业本上签字,是家长能做的简单但有效的三件事。家庭与学校的紧密合作,将对孩子的学习成果产生积极影响。 最后,赵老师强调了家长的正面态度和陪伴的重要性。无需...

    外研版一起小学英语三下册《Module 1Unit 2 I’m going to help her.》word教案.docx

    1. **热身(Warm-up)**:通过简单的游戏或歌曲活动,如数数游戏,激发学生的学习兴趣,为新课做铺垫。 2. **导入(Lead-in)**:让学生描述家庭成员的特征,然后引导他们通过观看视频A1,了解小女孩在做数学时...

    二年级语文下册 30 爱迪生救妈妈教案 人教版.doc

    教师引导学生自主阅读,找出并读准生字,通过各种游戏活动加强记忆,如听音找字和组字游戏。此外,还教授学生如何正确书写9个汉字,通过比较相似字形,如“捡—检”,帮助学生掌握字形结构。 第二课时则注重朗读和...

    四年级上册数学西师大版期末测试卷2(含答案).pdf

    2. 长方形有2组对边互相平行,2组边互相垂直。 知识点五:角的认识与计算 1. 角的两边是射线。 2. 两条直线相交,所成的一个角是直角,则这两条直线互相垂直。 知识点六:实践操作 1. 操作题目中包括用量角器画...

    四年级英语上册 Unit 1 Lesson 6Let's go教案 冀教版.doc

    1. 知识与技能:学生需要掌握并能运用单词“street”和“traffic lights”,同时,要能用英语进行简单的加法运算。 2. 情感态度价值观:通过游戏和情境创设,激发学生的学习兴趣和积极性,使他们体验到学习英语的...

    四年级英语上册 Module9 unit1教案 外研版.doc

    6. 教学提示:教师应充分利用课本资源,确保学生在每个活动中都能充分练习新学的内容,同时也应该适时提供反馈,帮助学生改正错误,提高语言运用的准确性。 总结来说,这个教案设计了多元化的教学活动,旨在帮助四...

    四年级英语上册 Lesson14 Near and far教案 冀教版.doc

    能力目标鼓励学生在日常生活中运用所学英语进行简单对话,同时提升听力技巧。情感目标旨在激发学生对英语的兴趣和好奇心,以及在日常生活中尝试模仿和使用英语。 教学过程详尽地规划了各个环节,从开始的课堂问候和...

    Module4,unitt1,,I,can,jump,far精选.doc

    - 呈现新知:通过模拟面试形式引入新词汇和句型,例如"I can play football.",然后进行两人一组的练习。 - 强化练习:通过动作展示和比赛来解释和练习"run fast","winner"和"jump far",并给予表现好的学生金牌...

    90后主题婚礼策划方案2021.docx

    - **签到台**:设置为课桌形式,摆放课本、文具等,签到簿则选用复古笔记本或同学录,增添怀旧感。 - **仪式区背景**:模仿学校操场,背景可设为黑板,上面绘制多彩图案,与迎宾牌相协调。 - **甜蜜视频**:播放...

    四年级英语下册 Module 10 Unit1教案 (新版)外研版.doc

    1. **能说出过去的事情**:学生应学会使用简单的英语句子描述过去发生的事情,如"I fell off my bike yesterday"。 2. **理解过去时态**:通过教学,学生能够理解并运用过去时态,如一般过去时(动词加-ed形式)来...

Global site tag (gtag.js) - Google Analytics