JAVA(网络)-2008.ppt_第1页
JAVA(网络)-2008.ppt_第2页
JAVA(网络)-2008.ppt_第3页
JAVA(网络)-2008.ppt_第4页
JAVA(网络)-2008.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二讲网络编程 网络应用是Java语言取得成功的领域之一 它已经成为现在Internet上最流行的一种编程语言 Java语言在网络编程方面提供了许多方便 其他语言往往需要数页代码才能完成的事情 在Java中可能只需要一条语句就可以 TCP IP 传输控制协议 网间协议 是Internet的主要协议 定义了计算机和外设进行通信所使用的规则 TCP IP网络参考模型包括五个层次 应用层 传输层 网络层 链路层 物理层 物理层 TCP IP 网络参考模型 基本知识1 计算机网络就是利用通信线路连接起来的 相互独立的计算机集合 2 计算机协议就是针对计算机之间的信息交互方式 秩序以及参数所作出的规定 常用协议 TCP IP UDP SNMP SMTP FTP HTTP file 3 网络功能作为一门成功的网络编程语言 Java为用户提供了十分完善的网络功能 获取网络上的各种资源与服务器建立连接和通信传递本地数据4 通信模式Java是通过使用流模式来实现网络信息交互的 这种模式下 一个接口同时拥有两个流 输入流和输出流 当一个线程向另一个线程发送数据时 只需将数据写入到相应接口的输出流上 而另一个进程在接口的 另一端 从输入流上读取数据 5 J包J包提供了低级和高级的网络功能 它包含了大部分用于访问网络资源的类 包中主要的类和可能产生的例外包括 面向IP层的类 InetAddress面向应用层的类 URL URLConnection面向传输层的类 TCP协议相关类 Socket ServerSocketUDP协议相关类 DatagramPacket DatagramSocket MulticastSocket 可能产生的例外 BindException ConnectException MalformedURLException NoRouteToHostException ProtocolException SocketException UnknownHostException UnknownServiceException 网络功能与使用方法网络功能按层次与使用方法分为三类 1 URL这种方法是通过URL的网络资源表达式形式确定数据在网络中的位置 利用URL对象中提供的方法 直接读入网络中的数据 或者将本地数据传送到网络的另一端 2 Socket 套接字IP 端口 重点内容 Socket是指两个程序通过网络进行通信的一种方式 在TCP IP协议下的客户服务器软件通常使用socket来进行信息交流 这种方式是传统中常用的一种方式 面向连接 这种工作方式类似两个人打电话 3 DataGram 数据报 Datagram方式是三种网络功能中最低级的一种 它是一种面向非连接的 以数据报方式工作的通信 适用于网络状况不稳定下的数据传输和访问 这种工作方式类似邮局寄邮件 Socket是TCP IP协议中的传输层接口 是建立在稳定连接基础上的以流传输数据的通信方式 它是目前实现客户 服务器 Client Server 模式应用程序的主要手段 底层网络通信编程 Socket 对等通信示例 一台机器只通过一条链路连接到网络上 但一台机器中往往有很多应用程序需要进行网络通信 如何区分呢 这就要靠网络端口号 port 0 65535 端口号是一个标记机器的逻辑通信信道的正整数 端口号不是物理实体 IP地址和端口号组成了所谓的Socket Socket是网络上运行的程序之间双向通信链路的最后终结点 它是TCP和UDP的基础 网络服务 http ftp 其他服务 23 telnet 数据结构I O缓冲区 端口 21 80 客户程序 Socket IP port IP与端口号组合而得出的Socket 可以完全分辨Internet上运行的程序 端口号 要求大于1023 0 1023为系统服务占用 基于连接的流式套接字socket通信 socket Ip 端口号 1 InetAddress类InetAddress类用来区分计算机网络中的不同节点 即不同计算机 并对其寻址 每个InetAddress对象包含了IP地址 主机名等信息 常用方法 getLocalHost 返回本地主机的名称和IP地址getByName 返回网站主机的名称和IP地址getAllByName 返回网站主机名称和IP地址的数组 2 ServerSocket类和Socket类 ServerSocket类 在Server端创建一个监听服务格式 ServerSocketmyServer newServerSocket 5000 调用监听服务的accept 方法在Server端创建一个Socket对象随时监听可能的Client端请求SocketlinkSocket myServer accept 在Server与Client之间建立一个连接来传递数据OutputStreamSocketOs linkSocket getOutputStream 用于写数据InputStreamSocketIs linkSocket getInputStream 用于读数据调用监听服务的close 方法结束监听服务myServer close Socket类 当Client端程序需要从Server端获取信息及其它服务时 应该创建一个Socket对象 格式 SocketmyClient newSocket Server主机名 端口号 在Server与Client之间建立一个连接来传递数据OutputStreamSocketOs myClient getOutputStream 用于写数据InputStreamSocketIs myClient getInputStream 用于读数据通信结束时 可以调用Socket类的close 方法来关闭拆除连接 myClient close 3 流式Socket的通信机制 Server端 创建ServerSocket对象在某端口提供监听服务 等待来自Client端的服务请求 接收Client端的请求 用返回的Socket建立连接 通过向Socket中读写数据来与Client端通信 关闭Socket 结束与当前Client的通信 等待其它请求 关闭ServerSocket对象 结束监听服务 Client端 创建Socket对象 向Server的监听端口请求 通过向Socket中读写数据来与Server端通信 关闭Socket 结束与Server端的通信 建立连接 数据通信 拆分连接 4 编程实例 聊天程序 服务器端程序 客户机端程序 importjava io importjava awt importjavax swing importjava awt event publicclasschatServerextendsJFrameimplementsActionListener JLabellabel newJLabel 聊天 JPanelpanel newJPanel JTextFieldtf newJTextField 10 用来输入要说的话JTextAreata newJTextArea 用来显示聊天过程 服务器端 基于Socket的聊天程序 ServerSocketserver Socketclient InputStreamin OutputStreamout publicchatServer 构造方法 super 服务器 setSize 250 250 panel add label panel add tf tf addActionListener this add North panel add Center ta setDefaultCloseOperation JFrame EXIT ON CLOSE setVisible true try server newServerSocket 5000 client server accept ta append 已连接的客户机 client getInetAddress getHostName n n in client getInputStream out client getOutputStream catch IOExceptionioe while true 接受客户端说的话 try byte buf newbyte 256 in read buf Stringstr newString buf ta append 客户机说 str ta append n catch IOExceptionioe publicvoidactionPerformed ActionEvente try Stringstr tf getText byte buf str getBytes tf setText null out write buf 发送服务器说的话ta append 我说 str ta append n catch IOExceptionioe publicstaticvoidmain Stringargs newchatServer importjava io importjava awt importjavax swing importjava awt event publicclasschatClientextendsJFrameimplementsActionListener JLabellabel newJLabel 聊天 JPanelpanel newJPanel JTextFieldtf newJTextField 10 JTextAreata newJTextArea Socketclient InputStreamin OutputStreamout 客户端 基于Socket的聊天程序 publicchatClient 构造方法 super 客户机 setSize 250 250 panel add label panel add tf tf addActionListener this add North panel add Center ta setDefaultCloseOperation JFrame EXIT ON CLOSE show try client newSocket InetAddress getLocalHost 5000 ta append 已连接到服务器 client getInetAddress getHostName n n in client getInputStream out client getOutputStream catch IOExceptionioe while true 接受服务器端说的话 try byte buf newbyte 256 in read buf Stringstr newString buf ta append 服务器说 str ta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论