zypmuzi1
2015-11-10 02:04
采纳率: 20%
浏览 1.4k

在Java里面怎么写web server服务啊

在Java里面怎么写web server服务啊,最好是能有详细点的代码,谢谢各位了!!!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • wanghang1208 2015-11-10 03:02

    所谓web server就是写一个程序,能够接受其它程序的socket请求,接受其它程序socket请求的就是ServerSocket。
    所以,具体的步骤为:定义一个ServerSocket,绑定端口号,然后循环等待其它程序socket的向你绑定的端口发送请求即可,当然它得知道ServerSocket所在机器的ip地址。
    在循环中,调用ServerSocket的accept(),此方法可以返回代表本次连接的socket,而且accept()为阻塞方法,即没有收到请求就一直等待。

    下面是一些代码:创建一个ServerSocket,绑定到本机的9999端口,并循环等待请求。
    ServerSocket mServerSocket = new ServerSocket();
    // 创建一个套接字,设置端口重用
    // 绑定端口之后,socket的选项设置无效,所以设置socket的选项必须在绑定端口之前
    mServerSocket = new ServerSocket();
    mServerSocket.setReuseAddress(true);
    // mServerSocket.setSoTimeout(5000);
    // SO_TIMEOUT表示ServerSocket的accept()方法等待客户连接的超时时间,以毫秒为单位
    // 如果SO_TIMEOUT的值为0,表示永远不会超时,这是SO_TIMEOUT的默认值,在本处,需要一直等到客户的连接,所以不设置SoTimeout
    mServerSocket.bind(new InetSocketAddress(9999));
    while (true) {
    // 接收客户端套接字,为阻塞操作
    Socket socket = mServerSocket.accept();
    // 其它的操作,比如接受socket的数据,通过socket发送数据

    在实际开发中,还需要保证绑定的端口没有被占用,否则会创建ServerSocket失败,同时请求端需要知道ServerSocket所在机器的ip地址。

    打赏 评论
  • oyljerry 2015-11-10 04:02
    打赏 评论

相关推荐 更多相似问题