HappyChat网络功能应用

上传人:jiups****uk12 文档编号:45554681 上传时间:2018-06-17 格式:PPT 页数:37 大小:707.50KB
返回 下载 相关 举报
HappyChat网络功能应用_第1页
第1页 / 共37页
HappyChat网络功能应用_第2页
第2页 / 共37页
HappyChat网络功能应用_第3页
第3页 / 共37页
HappyChat网络功能应用_第4页
第4页 / 共37页
HappyChat网络功能应用_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《HappyChat网络功能应用》由会员分享,可在线阅读,更多相关《HappyChat网络功能应用(37页珍藏版)》请在金锄头文库上搜索。

1、HappyChatHappyChat网络功能应用网络功能应用学习目的与要求:n深刻理解网络编程模型。n深刻理解相关网络概念。n熟练使用UDP进行编程。n熟练使用Socket进行编程 n12.1 HappyChat网络功能应用分析n12.2网络编程基础n12.3 使用URL方式进行网络连接n12.4 基于Socket的通讯n12.5 基于无连接的数据报通讯n12.6 本章小结n12.7 上机实训第第1212章章 HappyChatHappyChat网络功能应用网络功能应用12.1 12.1 HappyChatHappyChat网络功能应用分析网络功能应用分析 nHappyChat聊天系统本身就是

2、一个基于网络的一个 即时聊天系统。该系统的基本模式就是客户/服务器 模型,其网络功能主要体现在以下几个方面:u用户注册 用户要能够在HappyChat聊天系统中进行聊天,首先必须成为该 系统的合法用户 u用户登录 用户注册成功后,通过HappyChat聊天系统提供的登录程序进行 登录,在登录过程中客户端需要指定服务器IP地址、端口、用户 名和密码,通过网络传输到服务器以向指定服务器发出用户名和 密码验证的请求 u用户聊天 用户登录成功后,可以与指定的用户或所有用户进行即时聊天, 客户端和服务器端都能查看到用户的聊天信息,并且可以保存聊 天信息。u用户退出 用户在聊天过程中,可以选择退出聊天室,

3、在退出时,客户端要 向服务器端发出退出请求,断开与服务器的连接,服务器将该用 户的退出信息通知聊天系统中的用户。u服务器发送通知 聊天服务器在正常启动后,可以通过多线程响应多客户的连接请 求。同时,服务器也可以向客户端发送系统消息 12.212.2网络编程基础网络编程基础lC/S模式和B/S模式图12.1 客户/服务器模型lTCP/IP协议u所谓通信协议,就是客户端计算机与服务器端计算机在网络上通信的 方法。计算机网络形式多样,内容繁杂。网络上的计算机要互相通信 ,必须遵循一定的协议 u目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议。TCP 协议即传输控制协议,是一种面向

4、连接的保证可靠传输的协议;IP协 议即网际协议,是一种面向无连接的协议。通过TCP协议传输,得到 的是一个顺序的无差错的数据流 uUDP是User Datagram Protocol的简称,是一种无连接的协议,每个 数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网 络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的 地的时间以及内容的正确性都是不能被保证的 lURL和IP地址uURL URL即统一资源定位器,是Internet的关键部分,它表示Internet 上某一资源的地址 它提供了人和机器的导航,其功能是指向计算机里的资源,即定 位。URL可以分成三个部分:通信协议

5、、计算机地址和文件 URL常见的通信协议有三种:http,ftp和file URL是最为直观的一种网络定位方法。 使用URL符合人们的语言习惯,容易记忆,所以应用十分广泛。 而且在目前使用最为广泛的TCP/IP中对于URL中主机名的解析也 是协议的一个标准,即所谓的域名解析服务 使用URL进行网络编程,不需要对协议本身有太多的了解,功能 也比较弱,相对而言是比较简单的 uIP地址 IP地址nInternet上的计算机都有一个地址,这个地址就是一个数,称为IP地 址,它惟一地标识了网络上的每计算机n目前Internet中IP地址使用的都是IPv4协议,但随着时间的推移IPv6协议将会 取代IPv

6、4协议成为IP地址的主要方案 n在Internet上都是通过IP地址来访问主机,但IP地址不容易记忆,我们通常利 用域名来访问Internet上的主机 端口号n网络通信时同一机器上的不同进程的标识。如:80、21、23和25等, 其中11024为系统保留的端口号。 (1)使用URL进行网络编程 (2)使用Socket通信 (3)使用UDP通信 uInetAddress类 方法名方法功能 String getHostAddress()获取InetAddress所含的IP地址String getHostName()获取InetAddress所含的域名static InetAddress getLo

7、calHost()获取本地机的地址String getByName()通过域名获取IP地址或通过IP地址获取域名getAddress()返回IP地址的字节形式getAllByName()返回指定主机名的IP地址getbyAddress()返回指定字节数组的IP地址形式hastCode()返回InetAddress对象的哈希码toString()返回地址转换成的字符串表12.1 InetAddress类常用方法【例12-1】InetAddress类应用 /获得计算机名称和IP地址演示程序 import .*; public class INetDemo public static void ma

8、in(String args) new INetDemo().say(); public void say() try InetAddress i = InetAddress.getLocalHost();System.out.println(i); System.out.println(“主机名称为:“+i.getHostName();System.out.println(“IP地址为:“+i.getHostAddress(); catch(Exception e)e.printStackTrace(); 12.3 12.3 使用使用URLURL方式进行网络连接方式进行网络连接n在JAVA中

9、, .URL类和 .URLConection类使编程者方便地利用URL 在Internet上进行网络通信。URL类和 URLConnection类提供给我们一种简便的方法编写 网络程序,实现一些较高级的协议访问Internet nURL类封装了使用统一资源定位器访问W上的资源 的方法。这个类可以生成一个寻址或指向某个资源 的对象。URL类对象指向W资源(Web页、文本文件 、图形文件、声频片段等) uURL的基本格式: protocol:/hostname:port/resourcename#anchor,URL 中各组成项的主要含义如表12.2所示 符号含义protocol协议,包括http

10、、ftp、gopher、news、telnet等hostname主机名,指定DNS服务器能访问的W上的计算机名称,port端口号,可选,表示所连的端口,只在要覆盖协议的缺省端 口时才有用,如果忽略端口号,将连接到协议缺省的端口, 例如http协议的缺省端口为80resourcename资源名,是主机上能访问的目录或文件anchor标记,可选,它指定在资源文件中的有特定标记的位置表12.2 URL含义 uURL构造方法和常用方法表12.3 URL类构造方法和常用方法方法名方法功能 URL(String url)建立指向url资源的URL对象 URL(URL baseURL,String rela

11、tiveURL)通过URL基地址和相对于该基地址的资源名建立URL对象URL(String protocol,String host,String file)通过给定的协议、主机和文件名建立URL对象URL(String protocol,String host,int port,String file)通过给定协议、主机、端口号和文件名建立URL对象getPort()获得端口号 getProtocol()获得协议 getHost()获得主机名 getFile()获得文件名 getRef()获得连接 getDefaultPort()获得默认的端口号 getUserInfo获得用户信息 getC

12、ontent()不必显式指定寻找的资源类型,就可以取回资源并返回相应的形式。(例如GIF或 JPEG图形资源会返回一个Image对象)openStream()打开一个输入流,返回类型是InputStream,这个输入流的起点是URL实体对象的内容 所代表的资源位置处,终点则是使用了该URL实体对象及方法openStream()的程序。 在输入流建好了之后,我们就可以从输入流中读取数据了,而这些信息数据的实际来 源,则是最为输入流起点的网上资源文件【例12-2】URL应用实例/URL应用演示程序 import .*; import java.io.*; public class UrlDemo

13、public static void main(String args) throws Exception try URL url=new URL(“.baidu“); InputStreamReader isr=new InputStreamReader(url.openStream(); BufferedReader br=new BufferedReader(isr); String strInfo;while(strInfo=br.readLine()!=null) System.out.println(strInfo); br.close();isr.close();catch(Ex

14、ception e)System.out.println(e); 12.4 12.4 基于基于SocketSocket的通讯的通讯lSocket概述u套接字用于实现网络上客户程序和服务程序之间的连接, 即网络上两个以双工方式通信的进程之间的连接端点称为 套接字。套接字在较低层次上进行通信。u套接字是TCP/IP中的基本概念,它的含义类似于日常使用 的插座,主要用来实现将TCP/IP包发送到指定的IP地址 u应用程序一般仅在同一类的套接字之间通讯。不过只要底 层的通讯协议允许,不同类型的套接字之间也可以通讯。u有两种套接字类型:流套接字和数据报套接字。其中流套 接字提供双向的、有序的、无重复并且

15、无记录边界的数据 流服务,TCP是一种流套接字协议 lSocket类和ServerSocket类n在套接字通信中客户端的程序使用Socket类建立与服务器 套接字连接,Socket类的构造方法如表12.4所示 n在套接字通信中客户端的程序使用Socket类建立与服务器 套接字连接,即客户向服务器发出连接请求。因此服务器 必须建立一个等待接收客户套接字服务器套接字,以响应 客户端的请求。服务器端程序使用ServerSocket类建立接 收客户套接字的服务器套接字。ServerSocket类的构造方 法和常用方法如表12.5所示 n客户端和服务器端通过套接字进行通信时,要进行读写端 口和取地址操作

16、。读写端口和取地址的方法表12.6所示 方法名方法功能 Socket()建立未连接的socket Socket(SocketImpl impl)通过SocketImpl类对象建立未连接的Socket Socket(String host,int port)建立Socket并连接到指定的主机和端口号Socket(InetAddress address,int port)建立Socket并连接到指定的IP和端口号Socket(String host,int port,InetAddress localAddr,int localPort)建立一个约束于给定IP地址和端口的流式Socket并连接到指定的主机和端口Socket(InetAddress address,int port,InetAddress localAddr,int localP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号