网站大量收购闲置独家精品文档,联系QQ:2885784924

第3章套接字.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章套接字剖析

第3章 套接字 3.0.4 套接字概述 套接字(Socket)是由加利福尼亚大学伯克利分校(University of California,Berkeley)首创的,它允许程序把网络连接看成一个流(Stream),可以向这个流写字节,也可以从这个流读取字节。 套接字为程序员屏蔽了网络的底层细节,例如媒体类型、信息包的大小、网络地址、信息的重发等。 3.0.4 套接字概述 Socket是网络上运行的两个程序间双向通信的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便地编写程序使数据在网络传递。 java.net.Socket类是Java的基础类,用于执行客户端的TCP操作。套接字有两种:一种套接字在服务器端创建,叫做服务器套接字(ServerSocket);还有一种在客户端被创建,就是客户端套接字。 3.0.4 套接字概述 可以认为Socket是应用程序创建的一个港口码头,应用程序只要把装着货物的集装箱(要发送的数据)放在码头上,就算完成了货物的运送,剩下的工作就由货运公司(驱动程序)去处理了。对接收方来说,应用程序也要创建一个码头,然后就一直等待该码头的货物到达,最后从码头上取走货物(数据)。 3.0.4 套接字概述 Socket在应用程序中创建,通过一个绑定机制与驱动程序建立关系,告诉自己所对应的IP和Port。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送。计算机从网络收到与该Socket绑定的IP+Port相关数据后,由驱动程序交给Socket,应用程序便可以从该Sokcet中取得接收到的数据。 3.0.4 套接字概述 Socket能执行7种基本操作: 连接到远程机器。 绑定到端口。 接收从远程机器来的绑定端口上的连接。 监听到达的数据。 发送数据。 接收数据。 关闭连接。 3.1 客户端套接字(Socket) 当客户程序需要与服务器程序通讯的时候,客户程序在客户机通过构造函数创建一个Socket对象。 public Socket(String host ,int port) throws unknownHostException IOException 这个方法建立一个到主机host、端口号为port的套接字,连接到远程主机。 3.1 客户端套接字(Socket) try { Socket soc=new Socket (127.0.0.1 , 9090); ….//发送数据 } catch(unknownHostException uex) { } catch(IOException e) { } 3.1 客户端套接字(Socket) public InputStream getInputStream( ) throws IOException 这个方法返回一个输入流,利用这个流就可以从套接字读取数据。通常链接这个流到一个BufferedInputStream或者BufferedReader。 public OutputStream getOutputStream ( ) throws IOException 返回一个原始的OutputStream,可以从应用程序写数据到套接字的另一端。通常将它链接到DataOutputStream或者OutputStreamWriter等更方便的类,还可以利用缓冲。 3.1 客户端套接字(Socket) public int getPort ( ) 返回Socket连接到远程主机的端口号。 public int getLocalPort ( ) 一个Socket连接两个终端,方法getLocalPort( )返回本地连接终端的端口号。 3.2 服务器套接字(ServerSocket) 每个服务器套接字运行在服务器上特定的端口,监听在这个端口的TCP连接。当远程客户端的Socket试图与服务器指定端口建立连接时,服务器被激活,判定客户程序的连接,并打开两个主机之间固有的连接。 一旦客户端与服务器建立了连接,则两者之间就可以传送数据,而数据是通过这个固有的套接字传递的。 ServerSocket的工作过程 用ServerSocket()方法在指定端口创建一个新的ServerSocket对象。 ServerSocket对象调用accept( )方法在指定的端口监听到来的连接。accept( )一直处于阻塞状态,直到有客户端试图建立连接。这时accept( )方法返回连接客户端与服务器的Socket对象。 调用getInputStream( )方法或者getOutputStream( )方法或者两者全调用建立与客户端交互的输入流和输出流。具体情况要看服务器的类型而定。 服务器与客户端根据一定的协议交互,直

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档