天天看点

请说明什么是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,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。