日期:2011-03-22 16:16:00 来源:本站整理
什么是套接字[Java编程]
本文“什么是套接字[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
“套接字”大概“插座”(Socket)也是一种软件情势的抽象,用于表达两台机械间一个衔接的“终端”.针对一个特定的衔接,每台机械上都有一个“套接字”,可以想象它们之间有一条虚拟的“线缆”.线缆的每一端都插入一个“套接字”大概“插座”里.当然,机械之间的物理性硬件以及电缆衔接都是完好未知的.抽象的基本目标是让我们尽大概没必要知道那些细节.
在Java中,我们成立一个套接字,用它成立与其他机械的衔接.从套接字得到的后果是一个InputStream以及OutputStream(若利用得当的转换器,则辨别是Reader和Writer),以便将衔接作为一个IO流对象对待.有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听”进入的衔接;以及Socket,客户用它初始一次衔接.一旦客户(程序)申请成立一个套接字衔接,ServerSocket就会返回(通过accept()办法)一个对应的服务器端套接字,以便举行直接通信.此后时起,我们就得到了真正的“套接字-套接字”衔接,可以用一样的方法对待衔接的两头,因为它们本来就是相同的!此时可以操纵getInputStream()以及getOutputStream()从每个套接字产生对应的InputStream和OutputStream对象.这些数据流必须封装到缓冲区内.可按第10章介绍的办法对类举行格局化,就象对待其他任何流对象那样.
关于Java库的命名机制,ServerSocket(服务器套接字)的利用无疑是简单产生混合的又一个例证.大家大概认为ServerSocket最好叫作“ServerConnector”(服务器衔接器),大概其他什么名字,只是不要在此中安插一个“Socket”.也大概认为ServerSocket和Socket都应从一些通用的底子类担当.事实上,这两种类确切包含了几个通用的办法,但还不够资格把它们赋给一个通用的底子类.相反,ServerSocket的主要任务是在那边耐烦地等候其他机械同它衔接,再返回一个实际的Socket.这恰是“ServerSocket”这个命名不得当的地方,因为它的目标不是真的成为一个Socket,而是在其他人同它衔接的时刻产生一个Socket对象.
但是,ServerSocket确切会在主机上成立一个物理性的“服务器”大概侦听用的套接字.这个套接字会侦听进入的衔接,然后操纵accept()办法返回一个“已成立”套接字(本地和远程端点均已定义).简单混合的地方是这两个套接字(侦听和已成立)都与相同的服务器套接字关联在一同.侦听套接字只能接纳新的衔接恳求,不能接纳实际的数据包.所以固然ServerSocket关于编程并没有太大的意义,但它确切是“物理性”的.
成立一个ServerSocket时,只需为其赋予一个端口编号.没必要把一个IP地址分配它,因为它已经在自己代表的那台机械上了.但在成立一个Socket时,却必须同时赋予IP地址以及要衔接的端口编号(另一方面,从ServerSocket.accept()返回的Socket已经包含了全部这些信息).
以上是“什么是套接字[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:一个简单的服务器和客户机程序
- ·下一篇文章:什么是端口
- ·中查找“什么是套接字”更多相关内容
- ·中查找“什么是套接字”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论