版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java套接字编程金桥软件 孟波客户机/服务器模型SERVERCLIENT BCLIENT A CLIENT C服务器和客户机不一定是硬件组件。它们可以是工作在同一机器或不同机器上的程序。什么是套接字(Socket)? Network API是典型的用于基于TCP/IP网络Java程序与其他程序通讯,Network API依靠Socket进行通讯。Socket可以看成在两个程序进行通讯连接中的一个端点,Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。基于TCP/IP
2、网络中的每一个主机均被赋予了一个唯一的IP地址基于TCP/IP网络通讯的程序都被赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留Socket中的输入/输出信息,端口号是一个16位无符号整数,范围是0-65535。 网络协议 计算机之间进行通讯的时候,需要遵循一定的规则。数据以包的形式从一台机器发送到另一台。这些规则管理数据打包、数据传输速度、和重新创建数据将其恢复成原始形式。这些规则被称为网络协议。网络协议是通过网络进行通讯的系统所遵循的一系列规则和惯例。连网软件通常实现有高低层次之分的多层协议。网络协议的例子有:TCP/IP、UDP、Apple Talk 和NebBEUI。IP地址和
3、端口因特网服务器可以被认为是一组套接字类,它们提供了一般称为服务的附加功能。服务的例子有:电子邮件、远程登陆的Telnet、和通过网络传输文件的文件传输协议(FTP)每种服务都与一个端口相联系。端口是一个数值地址,通过它来处理服务请求(就象请求Web页一样)。TCP协议需要两个数据项:IP地址和端口号。因此,当键入 时,你是如何进入金桥的主页呢?因特网协议(IP)提供每一项网络设备。这些设备都带有一个称为IP地址的逻辑地址。由因特网协议提供的IP地址具有特定的形式。每个IP地址都是32位的数值,表示4个范围在0 to 255之间的8位数值。JQPX已经注册了它的名字,分配给 的IP地址为9。
4、如果没有指明端口号如果没有指明端口号,则使用服务文件中服务器的端口。每种协议有一个缺省的端口号,在端口号未指明时使用该缺省端口号。端口号应用21FTP, 传输文件23Telnet, 提供远程登陆25SMTP, 传递邮件信息67BOOTP, 在启动时提供配置情况80HTTP, 传输Web页109POP,使用户能访问远程系统中的邮箱端口号应用21FTP, 传输文件23Telnet, 提供远程登陆25SMTP, 传递邮件信息67BOOTP, 在启动时提供配置情况80HTTP, 传输Web页109POP,使用户能访问远程系统中的邮箱域名服务或DNS服务 域名服务或DNS服务是将 翻译成9的服务。这使你
5、可以键入 而不必记住IP地址。想象一下,怎么可能记住所有需要访问的站点的IP地址! 有趣的是一个网络名可以映射到许多IP地址。对于经常访问的站点可能需要这一功能,因为这些站点容纳大量的信息,并需要多个IP地址来提供业务服务。例如:9的实际的内部名称 。DNS可以将分配给JQPX Ltd.的一系列IP地址翻译成 。Java对网络协议提供了封装 Java 提供了一个丰富的、支持网络的类库,这些类使得应用程序能方便访问网络资源。Java提供了两种通讯工具。它们是:使用用户报文协议(UDP)的报文和使用传输控制协议/因特网协议(TCP/IP)的套接字。套接字用TCP来进行通讯。套接字模型同其他模型相比
6、,优越性在于其不受客户请求来自何处的影响。只要客户机遵循TCP/IP协议,服务器就会对它的请求提供服务。这意味着客户机可以是任何类型的计算机。客户机不再局限为UNIX、Windows、DOS或Macintosh平台,因此,网上所有遵循TCP/IP协议的计算机都可以通过套接字互相通讯。SocketSocket 是基类,它支持TCP协议。TCP是一个可靠的流网络连接协议。Socket类提供了输入/输出的方法,使得从套接字中读出数据和往套接字中写数据都很容易。该类对于编写因特网上的通讯程序而言是必不可少的。ServerSocket是一个因特网服务程序用来监听客户请求的类。ServerSocket实际
7、上并不执行服务;而是创建了一个Socket对象来代表客户机。通讯由创建的对象来完成。要使用的主要类或方法ServerSocket类 使用 包的ServerSocket类在服务器监听远程登陆请求的地方常见一个套接字。ServerSocket类的accept()方法防会对客户套接字的应用,它是Socket类的一个对象。Socket类 Socket类具有提供对客户数据流的引用的功能,这一引用是从数据可以被接收、或可以发送到客户机的方开始的。这由Socket类的getInputStream()和getOutputStream()方法来完成。ObjectInputStream类 一旦用getInputS
8、tream()方法初始化一个ObjectInputStream类的对象,服务器可以读从客户端发送的数据。readObject()方法 ObjectInputStream类的readObject()方法可以用于从数据流中读取对象类型的数据。Socket对象的创建Socket s = new Socket (, 13);InputStream is = s.getInputStream ();is.close ();s.close ();以上代码创建了一个服务程序主机地址为,端口号为13的Socket对象,然后从这个新创建的Socket对象中读取输入流,然后再关闭流和Socket对象。如果创建了一
9、个Socket对象,那么它可能通过调用Socket的 getInputStream()方法从服务程序获得输入流读传送来的信息,也可能通过调用Socket的 getOutputStream()方法获得输出流来发送消息。在读写活动完成之后,客户程序调用close()方法关闭流和流套接字,ServerSocket对象的创建 ServerSocket server = new ServerSocket (10000);while (true) /获取客户套接子引用s 用此获取流 Socket s = server.accept ();new ServerThread (s).start ();以上代码片段创建了一个ServerSocket对象来监听端口10000上的连接请求,如果成功, Ser
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年精密零件加工服务协议模板版
- 2024版国际贸易方式合同履行与环保要求
- 2025年度物流供应链优化解决方案合同2篇
- 2024年股票认购合同
- 2024年度中小企业员工劳动争议处理合同3篇
- 2024版智能工厂设备维保合同
- 二零二五年度国际贸易过桥资金合作协议书3篇
- 2025年度洗衣房维修保养服务合同3篇
- 二零二五年度2025版药品生产设备采购合作协议2篇
- 一年级上册口算卷20以内
- 戈19商务方案第十九届玄奘之路戈壁挑战赛商务合作方案
- 广西河池市宜州区2023-2024学年七年级上学期期末考试数学试卷(含解析)
- 2024高考政治真题-哲学-汇集(解析版)
- 对承租方有利的商铺租赁合同
- 2024云南大学滇池学院教师招聘考试笔试试题
- 国外幼儿园自主游戏研究现状
- 浙江大学2011–2012学年冬季学期《高级数据结构与算法分析》课程期末考试试卷
- 职业生涯规划-体验式学习智慧树知到期末考试答案章节答案2024年华侨大学
- 手术保护性约束
- AQ4230-2013 粮食平房仓粉尘防爆安全规范
- 建筑节能与绿色建筑监理细则
评论
0/150
提交评论