`

UDP实验课01

    博客分类:
  • java
阅读更多

实验课上测试的源码。

1)服务器端

Code:
  1. importjava.io.*;
  2. importjava.net.*;
  3. //服务器端
  4. publicclassUDPServerTest{
  5. staticpublicvoidmain(Stringargs[]){
  6. DatagramSocketreceiveSocket=null;
  7. try{
  8. //DatagramSocket(intport):创建实例,并固定监听Port端口的报文。通常用于服务端
  9. receiveSocket=newDatagramSocket(55511);
  10. bytebuf[]=newbyte[1000];
  11. //DatagramPacket(byte[]buf,intlength):将数据包中Length长的数据装进Buf数组,一般用来接收客户端发送的数据。
  12. DatagramPacketreceivePacket=newDatagramPacket(buf,buf.length);
  13. System.out.println("开始接受数据:");
  14. booleanflag=true;//作为接收完之后退出的标记
  15. while(flag){
  16. //接收数据报文到d中。receive方法产生一个“阻塞”。“阻塞”是一个专业名词,它会产生一个内部循环,
  17. //使程序暂停在这个地方,直到一个条件触发。
  18. receiveSocket.receive(receivePacket);
  19. Stringname=receivePacket.getAddress().toString();
  20. System.out.println("/n来自主机:"+name+"/n端口:"
  21. +receivePacket.getPort());
  22. //从实例中取得报文的Byte数组编码
  23. Strings=newString(receivePacket.getData(),0,receivePacket
  24. .getLength());
  25. System.out.println("接受到的数据是:"+s);
  26. flag=false;
  27. //需关闭连接,也关闭端口。
  28. receiveSocket.close();
  29. }
  30. }catch(SocketExceptione){
  31. receiveSocket.close();
  32. e.printStackTrace();
  33. System.exit(-1);
  34. }catch(IOExceptione){
  35. receiveSocket.close();
  36. System.out.println("网络通讯出现错误,问题在"+e.toString());
  37. }
  38. }
  39. }

2)客户端

Code:
  1. importjava.io.*;
  2. importjava.net.*;
  3. //客户端
  4. publicclassUDPClientTest{
  5. publicstaticvoidmain(Stringargs[]){
  6. DatagramSocketsendSocket=null;
  7. try{
  8. //DatagramSocket():通常用于客户端编程,它并没有特定监听的端口,仅仅使用一个临时的。程序会让操作系统分配一个可用的端口。
  9. //DatagramSocket(intport):创建实例,并固定监听Port端口的报文。通常用于服务端
  10. sendSocket=newDatagramSocket();
  11. Stringstring="whoau没死过,不知道dead的感觉";
  12. byte[]databyte=newbyte[100];
  13. databyte=string.getBytes();
  14. //从Buf数组中,取出Length长的数据创建数据包对象,目标是clientAddress地址,clientPort端口,通常用来发送数据给客户端。此处事发送给服务器端
  15. DatagramPacketsendPacket=newDatagramPacket(databyte,
  16. databyte.length,InetAddress.getByName("222.17.97.152"),
  17. 55511);
  18. //发送报文sendPacket到目的地
  19. sendSocket.send(sendPacket);
  20. System.out.println("客户端开始传送数据!");
  21. sendSocket.close();
  22. }catch(SocketExceptione){
  23. sendSocket.close();
  24. e.printStackTrace();
  25. System.out.println("不能打开数据报Socket,或数据报Socket无法与指定端口连接!");
  26. }catch(IOExceptionioe){
  27. sendSocket.close();
  28. System.out.println(ioe.toString());
  29. }
  30. }
  31. }

总结:异常或正常退出时,最好调用close方法,否则可能造成资源无法收回。

分享到:
评论

相关推荐

    RAW_UDP实验

    【标题】"RAW_UDP实验"涉及的是嵌入式系统中的网络通信技术,主要集中在使用STM32微控制器、LWIP轻型TCP/IP协议栈以及DP83848网络接口芯片进行UDP(用户数据报协议)的原始数据传输。在物联网(IoT)和嵌入式设备中,...

    Matlab 的内网UDP简单通讯实现

    【Matlab UDP简单通讯实现】 在信息技术领域,UDP(User ...这在教学、实验或快速原型开发中具有很高的实用价值。在实际应用中,还需要考虑错误处理、多线程处理、数据编码解码等细节,以确保程序的稳定性和健壮性。

    UDP Ping实验java程序

    很好的资料哦,是清华大学计算机网络课实验的要求之一

    可靠UDP传输的实现

    本项目是创新实验课最后的大实验,开发了一个可靠的UDP传输系统,采用了应答响应的思路,也就是TFTP的基本原理。整个开发过程全部使用的最简单易懂的代码,本人学习java网络编程也就用了一两周吧,但有一些c语言套接...

    网络程序设计实验课(TCP,UDP,并发服务员,循环服务员)

    在本实验课程中,我们将深入探讨四个核心概念:TCP(传输控制协议)、UDP(用户数据报协议)、并发服务员和循环服务员。这些概念是构建网络应用的基础,对于理解和开发高效的网络服务至关重要。 首先,TCP是一种...

    UDP.rar_arm udp_magic

    "UDP通讯实验"是针对这些微控制器进行的实践教学项目,目的是让学生或开发者理解如何在硬件层面实现UDP通信。UDP协议与TCP(Transmission Control Protocol)相比,它不提供连接建立、数据确认和流量控制等机制,...

    带界面的基于UDP协议的聊天小程序

    这个项目是一个在实验课上完成的小型应用程序,它的主要功能是在局域网内实现基于UDP(User Datagram Protocol)协议的即时通信。UDP是一种无连接的、不可靠的传输层协议,它在互联网协议族中扮演着重要的角色,尤其...

    TCP-UDP实现客户端服务器通信

    在这个大三的计算机网络实验课项目中,你们的任务是使用VB(Visual Basic)编程语言来实现基于这两种协议的客户端-服务器通信。 TCP是一种面向连接的、可靠的协议。它确保数据包按照发送顺序到达目的地,并且如果...

    基于UDP的计算机远程屏幕广播技术及其实现

    远程屏幕广播技术在教育、企业培训、远程会议等多个领域发挥着关键作用,尤其在计算机网络实验室中,教师能够通过局域网实时将自身的屏幕画面同步到多台学生电脑上,实现高效、直观的教学体验。此外,在多媒体设备...

    论文研究-基于UDP的网络虚拟示波器设计 .pdf

    网络虚拟示波器是一种基于网络技术的虚拟仪器,它可以通过网络接口与计算机连接,实现与传统示波器相似的信号捕捉和分析功能。本文讨论的网络虚拟示波...在高校的虚拟仪器教学、实验以及工业生产中具有广泛的应用价值。

    计算机网络实验课实验报告

    在计算机网络实验课的第一部分,学生将深入理解局域网(LAN)的基本概念。局域网是一种在有限地理范围内连接多台计算机和设备的网络,通常用于办公室、学校或家庭环境。实验台是进行网络实践操作的重要平台,它可能...

    计算机网络实验教学教案.doc

    计算机网络实验教学是信息技术教育的重要组成部分,旨在让学生深入理解网络原理、掌握网络操作技能,并培养实际问题解决能力。本实验教学教案围绕多个关键知识点展开,包括网络常用命令、双绞线制作、交换机配置管理...

    分别采用tcp和udp获取服务器

    tcp和udp的基础代码均已包括,这是我们实验课做的实验,觉得挺有用的,希望与大家分享!

    《网络编程》课程实验箱

    本试验软件工具箱主要用于《网络编程》这门课的实验教学,其中包括:进程管理、线程管理、IP地址与域名解析、网卡信息检测、TcpListener类与聊天程序服务器端设计、TcpClient类与聊天程序的客户端设计、UdpClient类...

    udp.zip_drop

    标题“udp.zip_drop”指的是一个与UDP(User Datagram Protocol)相关的项目或程序,它包含了发送器和接收器的实现,用于模拟在数据传输...同时,这也是网络协议教学和实验的良好素材,有助于加深对UDP协议特性的理解。

    计算机网络技术实验教学大纲.pdf

    计算机网络技术实验教学大纲旨在培养电子信息和通信工程专业学生对计算机网络的理论知识和实践技能。大纲围绕着几个核心实验项目展开,旨在让学生通过实际操作来理解和掌握计算机网络的关键概念和技术。 首先,实验...

    《计算机网络技术》课程实验教学大纲.docx

    【计算机网络技术】课程实验教学大纲旨在通过实践操作来加深学生对计算机网络基本概念、原理和技术的理解,提高其动手能力和问题解决能力。实验内容通常包括以下几个核心知识点: 1. **TCP/IP协议栈**:学生将学习...

    《网络编程》实验箱v1.2(升级版)

    更方便于《网络编程》这门课的实验教学,主要实验有:进程管理、线程管理、IP地址与域名解析、网卡信息检测、TcpListener类与聊天程序服务器端设计、TcpClient类与聊天程序的客户端设计、UdpClient类与组播程序设计...

Global site tag (gtag.js) - Google Analytics