版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java网络编程,UDP,本章目标,网络基础知识 简单UDP编程 图形界面的UDP聊天程序,网络基础知识,计算机网络 计算机网络是指将分布在不同地理区域的具有独立功能的计算机通过通信设备及传输媒体被互联起来,在通信软件的支持下,实现计算机间资源共享、信息交换或协同工作的系统 数据通信是计算机网络的基本功能之一,用于实现计算机之间的信息传送如在网上收发电子邮件,发布新闻消息,进行电子商务、远程教育、远程医疗,传递文字、图像、声音、视频等信息,通信协议 各个独立的计算机系统之间要保证有条不紊地进行数据通信,合理地共享资源,必须达成某种默契,严格遵守事先约定好的一整套通信规程,包括严格规定要交换的数
2、据格式、控制信息的格式和控制功能以及通信过程中事件执行的顺序等。这些通信规程我们称之为网络协议(Protocol)。,网络基础知识,通信协议举例,网络基础知识,网络协议的组织方式 对于结构复杂的网络协议来说,最好的组织方式是层次结构,计算机网络的协议就是分层的,层与层之间相对独立,各层完成特定的功能,每一层都为上一层提供某种服务,简化了每一层的功能,降低网络通信的复杂度。我们将网络层次结构模型与计算机网络各层协议的集合称为网络的体系结构或参考模型 1977年,国际标准化组织提出了开放系统互连参考模型(OSI,Open System Interconnection)的概念,1984年10月正式发
3、布了整套OSI国际标准,网络基础知识,OSI参考模型将网络的功能划分为7个层次:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如图所示。,网络基础知识,网络基础知识,应用层:与用户应用进程的接口,即相当于“做什么?” 表示层:数据格式的转换,即相当于“对方看起来像什么?” 会话层:会话的管理与数据传输的同步,即相当于“轮到谁讲话和从何处讲?” 传输层:从端到端经网络透明地传送报文,即相当于“对方在何处?” 网络层:分组交换和路由选择,即相当于“走哪条路可到达该处?” 数据链路层:在链路上无差错的传送帧,即相当于“每一步该怎么走?” 物理层:将比特流送到物理媒体上传送,即相当于“对
4、上一层的每一步应该怎样利用物理媒体?”,TCP/IP参考模型,TCP/IP协议是1974年由Vinton Cerf和Robert Kahn开发的,随着Internet的飞速发展,TCP/IP协议现已成为事实上的国际标准。TCP/IP协议实际上是一组协议,是一个完整的体系结构。如图所示。,TCP/IP与OSI参考模型的对比,TCP/IP与OSI参考模型的对比,常用的网络协议 互联网层协议 IP(internet protocol)协议:提供关于数据应如何传输以及传输到何处的信息 ARP(Address Resolution Protocol)协议:处理信息的路由以及主机地址解析 传输层协议 TC
5、P(Transmission Control Protocol )协议:传输控制协议,该协议主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换 .如文件下载 UDP(User Datapram Protocol)协议:用户数据报协议,一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务 。如QQ聊天,网络基础知识,应用层协议 HTTP(Hyper Text Transport Protocol,):超文本传输协议 FTP(File Transfer Protocol ):文件传输协议 TELNET:远程登录协议,用于远程联接服务的标准协议或者实现此协议的软件,利用远程计算机完
6、成当前计算机不能完成的功能,网络基础知识,IP地址 TCP/IP使用IP地址来标识源地址和目标地址 IP地址格式:7 本机回路IP地址: 7 localhost 域名 为了便于记忆,通常将网络地址写成字符串的形式,例如百度的网址为:.由DNS负责将域名解析成IP地址 端口号 逻辑意义上的数据传输通道,用整数形式表示,TCP/IP规定每台计算机拥有65535个逻辑通道 每个端口号为计算机某个特定应用程序服务,www服务端口为80,FTP服务端口为21,SQL数据库服务端口为1433等 1024以内的端口号已绑定了相应的服务程
7、序,用户编程中若用到端口号应选择1024以上的端口,网络基础知识,J包,Java中和网络通信有关的类都集中在包中 基于TCP传输协议的类为URL、URLConnection、Socket和ServerSocket 基于UDP传输协议的类为DatagramPacket、DatagramSocket和MulticastSocket 包可以大致分为两个部分 低级 API,用于处理以下抽象 地址,也就是网络标识符,如 IP 地址 套接字,也就是基本双向数据通信机制 接口,用来描述网络接口 高级 API,用于处理以下抽象 URI,表示统一资源标识符 URL,表示统一资源定位符 连接,表示到 URL 所指
8、向资源的连接,URL类,URL类简介 URL是WWW统一资源定位器(Uniform Resource Locator)的简写,它规范了WWW资源网络定位地址的表示方法。 WWW资源包括Web页、文本文件、图形文件、声频片段等 URL基本格式 protocol:/hostname:port/resourcename#anchor protocol:使用的协议,可以是http,ftp,news,telnet等 hostname:主机名 port:端口号,可选 resourcename:资源名,主机上能访问到的目录或文件 anchor:标记,可选,指定文件中的有特定标记的位置,InetAddress
9、,在 包中提供了网络编程所用到的类,其中InetAddress 类提供将主机名解析为其 IP 地址(或反之)的方法 InetAddress常用方法 在给定主机名的情况下确定主机的 IP 地址 public static InetAddress getByName(Stringhost) 返回本地主机 public static InetAddress getLocalHost() 获取当前 IP 地址的主机名 public String getHostName() 获取当前IP地址的IP地址字符串 public String getHostAddress(),public class Test
10、InetAddress public static void main(String args) try /当前主机 InetAddress ia1 = InetAddress.getLocalHost(); System.out.println(ia1); System.out.println(ia1.getHostName(); System.out.println(ia1.getHostAddress(); /百度主机 InetAddress ia2 = InetAddress.getByName(); System.out.println(ia2); System.out.printl
11、n(ia2.getHostName(); System.out.println(ia2.getHostAddress(); catch(Exception ex) ex.printStackTrace(); ,InetAddress使用举例,网络通信,网络通信即是联网的计算机之间进行数据通信,编写网络应用程序,就是在不同的计算机之间建立关联,能够将数据发送到其他计算机或者从其他计算机获取数据 网络通信的两种协议类型 UDP:用户数据报协议,面向非连接的协议 TCP:传输控制协议,面向连接的协议,public class UdpSender public static void main(Str
12、ing args) try DatagramSocket ds = new DatagramSocket();/ds相当于邮局 String sendStr = hello world!; /对数据打包,数据,数据长度,发送到的IP地址和端口号,端口号设定一个没被其他应用程序占用的端口 DatagramPacket dp = new DatagramPacket(sendStr.getBytes(),sendStr.length(),InetAddress.getByName(),3000); /发送 ds.send(dp); /关闭 ds.close(); catch(Ex
13、ception ex) System.out.println(发送失败); ,简单UDP编程_发送端,public class UdpReceiver public static void main(String args) try DatagramSocket ds = new DatagramSocket(3000); byte buf = new byte1024; DatagramPacket dp = new DatagramPacket(buf,1024); ds.receive(dp);/接收 String receiveStr = new String(dp.getData()
14、,0,dp.getLength()+ from+dp.getAddress().getHostAddress()+:+dp.getPort(); System.out.println(receiveStr); ds.close();/关闭 catch(Exception ex) ex.printStackTrace(); ,简单UDP编程_接收端,简单UDP编程总结,发送数据,接收数据,创建DatagramSocket对象ds,创建DatagramPacket将数据打包成dp 指定发送数据的目的IP地址和端口号,发送数据ds.send(dp);,关闭ds:ds.close();,创建Datag
15、ramSocket对象ds 指定服务的端口号,创建DatagramPacket接收来 自发送端的数据,接收数据ds.receive(dp);,关闭ds:ds.close();,简单用户界面聊天程序,receiveTextArea,sendTextField,IPTextField,源码,创建接收线程 public class Receiver extends Thread private JTextArea receiveTextArea; public Receiver(JTextArea receiveTextArea) this.receiveTextArea = receiveText
16、Area; public void run() try while(true) /接收套接字 DatagramSocket ds = new DatagramSocket(3000); byte buf = new byte1024; DatagramPacket dp = new DatagramPacket(buf,1024); ds.receive(dp); String receiveStr = new String(dp.getData(),0,dp.getLength(); this.receiveTextArea.append(receiveStr+n);/接收方显示 ds.cl
17、ose(); catch(Exception ex) JOptionPane.showMessageDialog(null,接收失败); ,发送按钮的代码 private void sendButtonActionPerformed(java.awt.event.ActionEvent evt) / TODO add your handling code here: String sendStr = sendTextField.getText(); String IP = IPTextField.getText(); try /创建套接字 DatagramSocket ds = new DatagramSocket(); /打包数据 DatagramPacket dp = new DatagramPacket(sendStr.getBytes(),sendStr.getBytes().length,InetAddress.getByName(IP),3000); /发送 ds.send(dp); s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年状元成才路名师教学设计
- 四川锅炉高级技工学校2026年教师招聘(校招)备考题库及完整答案详解一套
- 2026年江苏单招高考数学试卷及答案
- 2026年汛期安全生产工作方案
- 2026江西省投资燃气有限公司(第一批次)招聘2人备考题库及参考答案详解
- 2026浙江宁波大学附属人民医院招聘编外人员1人备考题库及参考答案详解1套
- 2026江苏常熟市环境保护科技有限公司(系统)招聘备考题库及答案详解参考
- 2026中央企业面向西藏籍高校毕业生专项招聘备考题库及1套参考答案详解
- 2026四川中医药高等专科学校助学助管员招聘31人备考题库及1套完整答案详解
- 防高空坠落专项施工方案
- 个体诊所药品管理制度培训
- 2026年中医博士研究生入学考试综合试卷(含答案及解析)
- 煤矿井下电气作业操作资格培训课件
- 2026年高考英语全国I卷考试真题及答案
- 雨课堂学堂在线学堂云《政治学基础(暨南)》单元测试考核答案
- 2026高考作文十大热考主题:长征精神(标题、金句、人物、分论点、范文)
- 2026西北政法大学专职辅导员招聘7人备考题库及答案详解(有一套)
- 2025年全国农产品质量安全检测技能竞赛理论知识考试题库(含答案)
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- 2025年中国科学技术大学强基计划试题及答案
- CJ/T 453-2014地铁隧道防淹门
评论
0/150
提交评论