PHP Socket 编程
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-23
ftp 202.120 .127.201 ,FTP客户软件将通过21端口来呼叫主机上由FTP 服务软件提供的Socket,与其建立连接并对话。而在netscape中输入 " http://202.120.127.201 " 时,将通过80端口来呼叫主机上由Web服务软件提供的Socket,与其建 立连接并对话。 在 Internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,象一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。 ----- 1 . 什么是socket 所谓socket通常也称作 " 套接字 " ,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过 " 套接字 " 向网络发出请求或者应答网络请求。 以J2SDK - 1 . 3为例,Socket和ServerSocket类库位于java . net 包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是 ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。 重要的Socket API:java . net . Socket继承于java . lang . Object ,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK - 1 . 3文档。 Accept方法用于产生 " 阻塞 " ,直到接受到一个连接,并且返回一个客户端的Socket对象实例。 " 阻塞 " 是一个术语,它使程序运行暂时 " 停留 " 在这个地方,直到一个会话产生,然后程序继续;通常 " 阻塞 " 是由循环产生的。 getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例。 getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。 2 . 如何开发一个Server - Client模型的程序 开发原理: 服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。 Socket接口是TCP / IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP / IP网络上的应用程序。要学Internet上 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 关于PHP开发编码规范下一篇: 一个PHP缓存类
关于PHP Socket 编程的所有评论