快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Java Socket编程(三)-1

服务器Sockets

服务器并不是主动地建立连接.相反地,他们是被动地监听一个客户端的连接请示然后给他们服务.服务器是由类ServerSocket来建立的.下面的程序建立了一个服务器端socket并把它绑定到80端口:

ServerSocket serverSocket = new ServerSocket(80, 5);

第一个参数是服务器要监听的端口.第二个参数是可选的.API文档中说明了这是一个监听时间,但是在传统的socket程序中第二个参数是监听深度.一个服务器可以同时接收多个连接哀求,但是每次只能处理一个.监听堆是一个无回答的连接哀求队列.上面的哀求建立一个连接来处理最后五个哀求.假如省略了后面的一个参数,则默认值是50.

ServerSocket serverSocket = new ServerSocket(80, 5);

一旦socket建立了并开始监听连接,进来的连接将会建立并放在监听堆.accetp()方式把在堆中的连接取出来.

Socket clientSocket = serverSocket.accept();

这个方式返回一个用来与来访者对话的客户端连接.服务器本身不可能建立对话,相反地,服务器socket会使用accept()方式来产生一个新的socket.服务器socket依旧打开并排列新的连接哀求.

与客户端socket相同,下面的一步建立输入和输出流:

DataInputStream inbound = new DataInputStream( clientSocket.getInputStream() ); DataOutputStream outbound = new DataOutputStream( clientSocket.getOutputStream() );

一般的I/O操作可以在新建的流中运用.在服务器回应前它等待客户端发送一个空白的行.当会话结束时,服务器关闭流和客户端socket.假如在队列中没有请示将会出现什么情况呢?那个方式将会等待一个的到来.这个行为叫阻塞.accept()方式将会阻塞服务器线程直到一个呼叫到来.当5个连接处理完闭之后,服务器退出.任何的在队列中的呼叫将会被取消.

所有的服务器都要有以下的基本的步骤:

1.建立一个服务器socket并开始监听.

2.使用accept()方式取得新的连接.

3.建立输入和输出流.

4.在已有的协议上产生会话.

5.关闭客户端流和socket.

6.回到第二步或者到第七步.

7.关闭服务器socket.




返回类别: 教程
上一教程: 用 Java 保存位图文件
下一教程: 调整JavaTM 的I/O性能(二)(zt)

您可以阅读与"Java Socket编程(三)-1"相关的教程:
· JAVA语言的SOCKET编程
· 三步学会JAVA SOCKET编程
· Java socket编程入门[1]
· JAVA SOCKET编程
· JAVA SOCKET编程中的一个秘密类
    微笑服务 优质保证 索取样品