版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、KYIT V1.01Java-socket网络编程第十七章KYIT V1.02本节目标网络编程基础Socket实现网络通讯KYIT V1.03跨机器环境编程从历史上看,从历史上看,跨机器环境编程,容易出错,难度高,跨机器环境编程,容易出错,难度高,复杂,工作之繁复令人望而怯步。复杂,工作之繁复令人望而怯步。自他处某部机器取得信息,并将信息移至你所在的自他处某部机器取得信息,并将信息移至你所在的机器上,或进行相反的动作,可通过网络程序设计机器上,或进行相反的动作,可通过网络程序设计来完成。来完成。这个题目的涉及范围很大,我们将做核心而简要的学习。这个题目的涉及范围很大,我们将做核心而简要的学习。
2、KYIT V1.04网络编程Java网络程序库的用法和文件读写非常相似,只网络程序库的用法和文件读写非常相似,只不过现在的这个不过现在的这个“文件文件”是位于远端机器,而远端是位于远端机器,而远端机器有权决定你所请求或传送的信息该如何处理。机器有权决定你所请求或传送的信息该如何处理。底层和网络相关的细节已经被尽可能抽象化,并底层和网络相关的细节已经被尽可能抽象化,并由由JVM和本机上的和本机上的Java处理掉。我们所使用的处理掉。我们所使用的编程模型和处理文件的时候相同。编程模型和处理文件的时候相同。KYIT V1.05Java对通信编程的支持java对通信编程的支持,在较低层次上是对通信编程
3、的支持,在较低层次上是InetAddress类和类和Socket相关类,在较高层次上是相关类,在较高层次上是URL类。类。包是包是java2标准类库的一部分,它提供了实现标准类库的一部分,它提供了实现网络应用所必须的类,以及辅助的接口和异常。网络应用所必须的类,以及辅助的接口和异常。KYIT V1.06网络q实现资源共享和通信q连接终端系统(主机)的通信系统KYIT V1.07网络适配器q计算机通过线缆连接q网络接口卡 (NIC) 用于将计算机连接至线缆,也称为网络适配器KYIT V1.08协议q网络中计算机之间通信的规则q常用的协议q超文本传输协议 (HTTP)q文件传输协议 (FTP)q简
4、单邮件传输协议 (SMTP)q网络新闻传输协议 (NNTP)q邮局协议 (POP3)q远程登陆协议 (telnet)q域名服务 (DNS)KYIT V1.09机器的识别为了区别不同的机器,必须有办法识别出网络上为了区别不同的机器,必须有办法识别出网络上独一无二的机器。独一无二的机器。如今如今Java运作于运作于Internet上,需要一种能够识别全上,需要一种能够识别全世界机器的方法。世界机器的方法。这个方法就是通过这个方法就是通过IP地址来识别与访问机器。地址来识别与访问机器。KYIT V1.010机器的识别:IP地址一般的一般的Internet Web服务器应该有固定的服务器应该有固定的I
5、P地址;地址;如果你是拨号上网,如果你是拨号上网,ISP(Internet 服务供应商服务供应商)会指派会指派一个临时的一个临时的IP地址给你。当你连上网络的时候,这个地址给你。当你连上网络的时候,这个IP地址和地址和 Internet上的其他上的其他IP地址具有同等效力。地址具有同等效力。如果告诉你的朋友这个如果告诉你的朋友这个IP地址,并且你的电脑已经有地址,并且你的电脑已经有Web服务器,那么他就可以连上服务器,那么他就可以连上“http:/你的你的IP地址地址”的的的网址。当然只有这次拨接连线期间才可以。的网址。当然只有这次拨接连线期间才可以。KYIT V1.011IP与DNSqIP
6、地址地址q连接至网络的每台计算机都是唯一的连接至网络的每台计算机都是唯一的q32 位数字,四个用点号分隔的数字位数字,四个用点号分隔的数字q域名系统域名系统q将特定将特定 IP 地址映射至字符串地址映射至字符串q映射由域名服务器系统维护映射由域名服务器系统维护KYIT V1.012InetAdress类InetAddress是表示是表示IP地址的类。地址的类。我们通常使用它的静态方法我们通常使用它的静态方法getByName(String host),来,来使用机器名称得到使用机器名称得到InetAddress对象。对象。我们可以使用我们可以使用InetAddress类对象的方法来得到类对象的
7、方法来得到IP地址。地址。Static InetAddress getLocalHost()Static InetAddress getByName(String HostName)KYIT V1.013机器的识别:IP地址KYIT V1.014服务端和客户端网络的用途就是让两部机器得以连接并彼此通信。网络的用途就是让两部机器得以连接并彼此通信。这种情况就像在游乐园中迷路一样:有一部机器待这种情况就像在游乐园中迷路一样:有一部机器待在某个固定地点,并且倾听另一部机器的询问:在某个固定地点,并且倾听另一部机器的询问:“嘿,你在哪儿?嘿,你在哪儿?”定点的机器称为定点的机器称为“服务器服务器”,而
8、寻找它的那一部机器,而寻找它的那一部机器则被称为则被称为“客户端客户端“,一旦二者完成连接,其间的,一旦二者完成连接,其间的通信即属双向通信,而二者之间究竟谁扮演服务器,通信即属双向通信,而二者之间究竟谁扮演服务器,谁扮演客户端也就无关紧要。谁扮演客户端也就无关紧要。KYIT V1.015没有网络的情况在我们的计算机没有连接网络的时候,我们依然在我们的计算机没有连接网络的时候,我们依然可以编写网络程序进行测试。可以编写网络程序进行测试。网际网络通信协议的创造者专门创造了一个叫做网际网络通信协议的创造者专门创造了一个叫做localhost的特殊地址,在缺少网络的情况下作为的特殊地址,在缺少网络的
9、情况下作为测试用的本机回路测试用的本机回路IP地址,并为此保留地址,并为此保留作为作为IP地址。地址。KYIT V1.016port:机器中独一无二的地点同一台机器上可能存在多个服务器。客户端知道同一台机器上可能存在多个服务器。客户端知道如何通过如何通过IP地址连接到机器,但是如何才能连上地址连接到机器,但是如何才能连上它想要的网络服务呢?它想要的网络服务呢?port并非机器上实际存在的位置,而是一种软件并非机器上实际存在的位置,而是一种软件上的抽象概念,通常在给定的服务器机器上,上的抽象概念,通常在给定的服务器机器上,每个服务都会对应一个不与其他服务冲突的每个服务都会对应一
10、个不与其他服务冲突的port。客户端必须事先知道它所想要使用的客户端必须事先知道它所想要使用的port号码。号码。系统服务保留系统服务保留1-1024个个port,我们不能用这些。,我们不能用这些。KYIT V1.017端口q用于实现程序间的通信q常用的端口协议端口Telnet协议23简单邮件传输协议25文件传输协议21超文本传输协议80KYIT V1.018套接字q是 Internet 通信的端点q与主机地址和端口地址相关联q客户端和服务器通过套接字建立连接和进行通信qTCP/IP 套接字qUDP 套接字KYIT V1.019TCP与UDPTCP传输控制协议,具有极高的可靠性,保证数据传输控
11、制协议,具有极高的可靠性,保证数据 包按照顺序准确到达,但其也有着很高的额外包按照顺序准确到达,但其也有着很高的额外 负担。负担。UDP使用者数据元协议,并不能保证数据包会被使用者数据元协议,并不能保证数据包会被 成功的送达,也不保证数据包到达的顺序,但成功的送达,也不保证数据包到达的顺序,但 其传输速度很快。其传输速度很快。大多数我们会使用大多数我们会使用TCP,偶尔才会动用,偶尔才会动用UDP,如声音讯,如声音讯号,即使少量遗失,也无关紧要。号,即使少量遗失,也无关紧要。KYIT V1.020Sockets:插座 Sockets是一个软件中的抽象概念,用来代表两部是一个软件中的抽象概念,用
12、来代表两部机器之间的连线终端。机器之间的连线终端。我们可以想象两部机器之间有一条假想的缆线,我们可以想象两部机器之间有一条假想的缆线,缆线两端插在某给插座(缆线两端插在某给插座(Socket)上。)上。包中提供了包中提供了Socket和和ServerSocet类,分别类,分别实现了实现了TCP/IP通信的客户端与服务器端。通信的客户端与服务器端。KYIT V1.021Socket 类 有两种有两种socket类:类:ServerSocket让服务器来倾听连线。让服务器来倾听连线。Socket让客户端来建立连线。让客户端来建立连线。当客户端建立连线后,当客户端建立连线后,ServerSocket
13、便会使用便会使用accept()方法返回的方法返回的Socket,通过它可以开始通信。,通过它可以开始通信。KYIT V1.022关于accept()一旦一旦ServerSocket对象建立,就可以调用对象建立,就可以调用accept()方法方法等待,直到有一个客户程序请求连接到服务器正在等待,直到有一个客户程序请求连接到服务器正在监听的端口上。监听的端口上。当当accept()方法与客户端成功建立连接后,它将返回方法与客户端成功建立连接后,它将返回一个新的一个新的Socket对象,在新的对象,在新的Socket对象上建立输入、对象上建立输入、输出流,服务器就可以与客户端通信了。输出流,服务器
14、就可以与客户端通信了。KYIT V1.023简单实验 客户端从键盘接受一个字符串,将其发送至服务器,客户端从键盘接受一个字符串,将其发送至服务器,服务器在该字符串前加上服务器在该字符串前加上”You have said: “后返回给后返回给客户端,客户端将新的字符串在屏幕上打印出来。客户端,客户端将新的字符串在屏幕上打印出来。KYIT V1.024简单实验:服务端KYIT V1.025简单实验:服务端KYIT V1.026简单实验:客户端KYIT V1.027简单实验:客户端KYIT V1.028简单实验:服务端KYIT V1.029简单实验:客户端KYIT V1.030套接字SOCKET总结
15、是是 Internet Internet 通信的端点通信的端点与主机地址和端口地址相关联与主机地址和端口地址相关联客户端和服务器通过套接字建立连接和进行客户端和服务器通过套接字建立连接和进行TCP/IP TCP/IP 套接字套接字较可靠的双向流协议较可靠的双向流协议发送任意数量的数据发送任意数量的数据提供消息确认、错误检测和错误恢复等服务提供消息确认、错误检测和错误恢复等服务UDP UDP 套接字套接字比较不可靠比较不可靠KYIT V1.031java实现网络通讯 包可以大致分为两个部分:包可以大致分为两个部分:低级低级 APIAPI,用于处理以下抽象:,用于处理以下抽象:地址,也就是网络标识
16、符,如地址,也就是网络标识符,如 IP IP 地址。地址。套接字,也就是基本双向数据通信机制。套接字,也就是基本双向数据通信机制。接口,用于描述网络接口。接口,用于描述网络接口。高级高级 APIAPI,用于处理以下抽象:,用于处理以下抽象:URIURI,表示统一资源标识符。,表示统一资源标识符。URLURL,表示统一资源定位符。,表示统一资源定位符。连接,表示到连接,表示到 URL URL 所指向资源的连接。所指向资源的连接。地址地址KYIT V1.032J包-地址KYIT V1.033Web相关类:URL类URL类代表了统一资源定位器,就是网络上某资源类代表了统一资源定位器,就是网络上某资源的地址。的地址。Apple
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四个买方合同范本模板
- 基金公司投资合同范本
- 因为遇见你离婚协议书
- 外企外包短期合同范本
- 大块积木转让合同范本
- 外卖租车租电合同范本
- 喷油车间承包协议合同
- 外协加工合同转让协议
- 大公司股份合作协议书
- 国际大豆采购合同范本
- GB/T 13560-2009烧结钕铁硼永磁材料
- GB/T 13452.2-2008色漆和清漆漆膜厚度的测定
- 远程会诊登记本
- 高速公路改扩建工程施工作业指导书
- 多旋翼无人机培训教材课件
- 高新技术企业(科技型中小企业)专题培训课件
- 公司治理课件讲义
- 送达地址确认书(诉讼类范本)
- 【精品】部编版五年级上册道德与法治全册课时练(一课一练)(含答案)
- DBJ41-138-2014 河南省建筑地基基础勘察设计规范-(高清版)
- 护理专业医疗质量控制指标2020年版解读课件
评论
0/150
提交评论