A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毛羚杨 中级黑马   /  2014-2-23 15:58  /  1215 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. ServerSocket ss=new ServerSocket(2000);
  2.                
  3.                 Socket socket=ss.accept();
  4.                 String ip=socket.getInetAddress().getHostAddress();
  5.                
  6.                 //通过socket对象获取流,获取客户端的发送的数据
  7.                 InputStream in=socket.getInputStream();
  8.                
  9.                
  10.                 byte [] buf=new byte [1024];
  11.                 int len=in.read(buf);
  12.                
  13.                 String s=new String(buf,0,len);
  14.                 System.out.println(ip+":"+s);
  15.                 socket.close();
  16.                 ss.close();
复制代码
大家都知道Socket socket=ss.accept();,这个是创建服务端socket服务。通过ServerSocket对象,他这个获得客户端的socket服务是怎么获取的 他是通过反射机制获取的吗?还是普通的直接调用呢?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

5 个回复

正序浏览
本帖最后由 qqwwdr 于 2014-2-24 13:54 编辑
flying 发表于 2014-2-24 13:24
客户端建立socket服务的时候指定主机 和端口
服务器监听指定端口   
accept就是获取客户端的 socket对象   ...

毕老师的视频里也是这么讲的,
查看源码:

    public Socket accept() throws IOException {
        if (isClosed())
            throw new SocketException("Socket is closed");
        if (!isBound())
            throw new SocketException("Socket is not bound yet");
        //通过系统默认类型的 SocketImpl 创建未连接套接字
        Socket s = new Socket((SocketImpl) null);
        //ServerSocket 的子类使用此方法重写 accept() 以返回它们自己的套接字子类
        implAccept(s);
        return s;
    }

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
客户端建立socket服务的时候指定主机 和端口
服务器监听指定端口   
accept就是获取客户端的 socket对象  
如:客户端A和客户端C都连接服务器  B
服务器B只有获取A的socket才能与客户端A通信 同时也保证服务器B向B发送的数据被A接受 而不是客户端C

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
tomcat不就是一个服务器嘛,默认端口8080,你本地访问时不是每次都是 localhost:8080嘛,你看是不是访问了指定端口,它是不是监听了指定端口
回复 使用道具 举报
张东健 发表于 2014-2-23 20:01
监听机制,在web中有监听器这个概念的,这里服务端不是监听一个端口嘛,每个指定这个端口的请求都会被监听 ...

监听机制听说过,难道这就是传说中的监听吗
回复 使用道具 举报
监听机制,在web中有监听器这个概念的,这里服务端不是监听一个端口嘛,每个指定这个端口的请求都会被监听到,然后获取对象

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马