ServerSocket类 服务端

//一个监听端口并提供HTML文档的程序.
import java.io.*;
import java.net.*;
<wbr><br> class SimpleWebServer {<br><wbr>public static void main(String args[]) {<br><wbr><wbr>ServerSocket serverSocket = null;<br><wbr><wbr>Socket clientSocket = null;<br><wbr><wbr>int connects = 0;<br><wbr><wbr>try {<br><wbr><wbr><wbr>// 建立一个服务器套接字<br><wbr><wbr><wbr>serverSocket = new ServerSocket(8089, 5);//服务器要监听的端口,同时接受5个请求,每次处理一次<br><wbr><wbr><wbr>while (connects &lt; 5) {<br><wbr><wbr><wbr><wbr>// 等待连接<br><wbr><wbr><wbr><wbr>clientSocket = serverSocket.accept();//在队列中的连接取出来<br><wbr><wbr><wbr><wbr>//服务连接<br><wbr><wbr><wbr><wbr>ServiceClient(clientSocket);<br><wbr><wbr><wbr><wbr>connects++;<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>serverSocket.close();<br><wbr><wbr>}catch (IOException ioe) {<br><wbr><wbr><wbr>System.out.println("Error in SimpleWebServer: " + ioe);<br><wbr><wbr>}<br><wbr>}<br><wbr>public static void ServiceClient(Socket client) throws IOException {<br><wbr><wbr>DataInputStream inbound = null;<br><wbr><wbr>DataOutputStream outbound = null;<br><wbr><wbr>try {<br><wbr><wbr><wbr>// 得到IO流<br><wbr><wbr><wbr>inbound = new DataInputStream( client.getInputStream());<br><wbr><wbr><wbr>outbound = new DataOutputStream( client.getOutputStream());<br><wbr><wbr><wbr>//格式化输出(回应头和很少的HTML文档)<br><wbr><wbr><wbr>StringBuffer buffer = new StringBuffer();<br><wbr><wbr><wbr>buffer.append("Server Documents");<br><wbr><wbr><wbr>String inputLine;<br><wbr><wbr><wbr>while ((inputLine = inbound.readLine()) != null){<br><wbr><wbr><wbr><wbr>//如果到了HTTP请求的尾部,就发送回应<br><wbr><wbr><wbr><wbr>if ( inputLine.equals("") ) {<br><wbr><wbr><wbr><wbr><wbr>outbound.writeBytes(buffer.toString());<br><wbr><wbr><wbr><wbr><wbr>break;<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr>}catch (IOException ioe) {<br><wbr><wbr><wbr>System.out.println("Error in SimpleWebServer: " + ioe);<br><wbr><wbr>}finally {<br><wbr><wbr><wbr>//关闭输入输出流和套接字<br><wbr><wbr><wbr>System.out.println("Cleaning up connection: " + client);<br><wbr><wbr><wbr>outbound.close();<br><wbr><wbr><wbr>inbound.close();<br><wbr><wbr><wbr>client.close();<br><wbr><wbr><wbr>client.close();<br><wbr><wbr>}<br><wbr>}<br> }<br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

<wbr></wbr>

()建立一个服务器套接字并开始监听

()使用accept()方法取得新的连接

()建立输入和输出流

()在已有的协议上产生会话

()关闭客户端流和新建的连接套接字

()回到第二步或者第七步

()关闭服务套接字

服务器本身不可能建立对话,服务器端套接字会使用accept()方法来产生一个新的套接字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值