- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程基础 网络聊天室 范例演示 需要解决的问题 1)如何与对方机器进行连接 2)如何找到对应的应用程序 3)对收到的信息怎样实现是广播还是一对一? 网络编程基础知识—解决问题1和2 Internet上互相通信的计算机采用的协议是TCP协议或者UDP协议,它们的结构类似于: 网络编程基础知识—解决问题1和2 TCP是传输控制协议,也称为“基于数据流的套接字”,根据该协议的设计宗旨,它具有高度的可靠性,而且能保证数据顺利到达目的地。换言之,它允许重传那些由于各种原因半路“走失”的数据。而且收到字节的顺序与它们发出的顺序是一样的。TCP的高可靠性需要付出的代价是:高开销(需要有很多的信息用于控制信息)。 而UDP称为用户数据报协议,它并不刻意追求数据报会完全发送出去,也不能担保抵达的顺序与它们发出时一样。因此,UDP被认为是一种不可靠协议。但是,它的速度快,对于某些应用来说(例如声音),如果速度并质量更重要,就可以采用UDP协议。大多数互联网游戏也是采用UDP协议。 网络编程基础知识—解决问题1和2 机器标识 为了分辨出网络上的每一台机器,必须有一种机制能独一无二地标识出网络内的每台机器。这可以通过IP地址来实现。IP地址以两种形式存在: 直接IP地址( 如) 域名()。? ?? 网络编程基础知识—解决问题1和2 服务器和客户机 网络最基本的精神是让两台计算机连接在一起,并相互“沟通”。一旦两台计算机发现了对方,就可以开始沟通,但它们怎样才能“发现”对方呢? 两台计算机要发现对方,通常需要其中一台扮演“服务器”的角色,另一台扮演“客户机”的角色。 客户机用来发出连接请求,而服务器用来等待连接请求。 网络编程基础知识—解决问题1和2 客户机发出连接请求到服务器(通过IP地址),请求信息在网络上传输,当服务器在接到连接请求并确认后,建立与客户机的连接。 一旦连接建立好,服务器和客户机之间就变成了一种双向通信,那么无论是对服务器端还是对客户机端来说,连接就变成了一个IO数据流对象。从这是开始,我们就可以象读写一个普通的文件一样来对待连接。 网络编程基础知识—解决问题1和2 端口 有些时候,一个IP地址并不足以完整标识一个服务器。这是由于在一台计算机中,往往运行着多个服务器(即不同的网络应用程序)。为了标识是哪个服务器,就需要用到一个端口。例如,通常来说HTTP采用的是80端口,FTP采用的是21端口。 端口并不是机器上一个物理上存在的场所,而是一种软件抽象(主要是为了表达的方便)。客户程序知道如何通过机器的IP地址同服务器连接,但怎样才能同自己真正需要的那种服务连接呢(一般每个端口都运行着一种服务,一台机器可能提供了多种服务,例如HTTP、FTP)?端口在这里扮演了重要的角色,它是必需的一种二级定址措施。也就是说,我们请求一个特定的端口,就是请求与那个端口编号关联的服务。 系统保留了使用端口1到端口1024的权利,所以,在我们设计网络通信程序时,一般不应站用这些端口。 网络编程基础知识—解决问题1和2 套接字 Socket套接字也是一种软件形式的抽象。用于表达两台机器间一个连接的“通道”。针对一个特定的连接,每台机器上都有一个“套接字”,通过“套接字”,两台机器之间就形成了一条“虚拟”的通道。 Java的网络编程类 JDK提供了1个包,在该包中,主要包含如下的几个类: 1.Java中IP地址的表示(InetAddress类) 包中提供了一个InetAddress类,该类用于表示一个IP地址。它常用的方法有: (1) public static InetAddress getByName(String?host) 返回字符串host所表示的IP地址。 (2)public static InetAddress getLocalHost() 返回本机IP地址(如果你的机器设置了IP地址,则返回你自己的IP,否则返回默认的IP地址:)。 Java的网络编程类 2.服务器端口打开(ServerSocket类) ServerSocket类用于在服务器端打开某一个端口,等待客户端的连接请求,它常用的方法有: (1)构造器方法public ServerSocket(int?port) 用于打开服务器port端口。 (2)public Socket accept() 用于等待客户连接,当连接成功时,形成一个套接字对象。 (3)public void close() 关闭用户连接。 Java的网络编程类 3.套接字建立(Socket类) Socket类用于套接字的建立。它常用的方法有: (1)构造器方法public Socket(InetAddress?address, int?port) 用于
文档评论(0)