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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 金肖 中级黑马   /  2012-5-10 09:26  /  1668 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//1,创建服务端流
ServerSocket ss = new ServerSocket(10006);
               
Socket s = ss.accept();  //这句话是什么意思呢?

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
Socket s = ss.accept();   //accept()是接收客户端请求,返回一个客户端对象
回复 使用道具 举报
本帖最后由 小小企鹅 于 2012-10-27 22:35 编辑

要连接到其他的机器上,我们会需要Socket的连接。Socket是个代表两台机器之间网络连接的对象(java.net.Socket)。
Socket s= new Socket("196.164.1.103",10006);//ip地址和tcp端口号
1服务器应用程序对特定端口创建ServerSocket:
ServerSocket serverSock = new ServerSocket(10006);//服务器应用程序开始监听来自10006端口的客户端请求
2服务器创建出与客户端通信的新Socket:
Socket s = serverSock.accept();
accept()方法会在等待用户的Socket连接时闲置,当用户连接时,此方法会返回一个Socket以便与客户端通信。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
TCP接收和发送数据都是通过Socket对象中的输入和输出流来完成的,可以通过Socket对象的getInputStream()和getOutputStream()方法来获取Socket中的输入输出流,服务端建立ServerSocket服务后,通过ServerSocket对象的accept()方法可以获取客户端的Socekt对象,再用获取Socekt对象的方法就可以接收和发送数据了。楼主提供的代码Socket s = ss.accept()就是获取客户端的Socket对象。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Socket s = ss.accept();   是通过ServerSocket中的accept()方法获取连接过来的客户端对象,在这句话中也就是ss调用accept()方法,返回 一个Socket
按照毕老师的讲解,在TCP传输时,客户端A发过来的数据,服务端处理并反馈给客户端A,而不是反馈给客户端B,
那么如果要原路把数据返回,就需要知道是谁发过来的,而反馈数据时,最好的办法就是哪个客户端发过来的数据,就再用这个客户端返回去,就不会数据错乱
于是就有了accept()获取连接过来的客户端对象方法。

说得全是大白话,希望你能懂

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

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