Socket与SocketChannel的区别与联系?

njciapple 2009-08-17 08:56:19
刚做通信这块,不太清楚,TCP连接,为什么有的人用Socket,有的人用SocketChannel,它们有什么区别和联系吗?哪个更好一点?请大家指教一下!
...全文
956 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
njciapple 2009-08-19
  • 打赏
  • 举报
回复
谢谢几位了,还是该找个详细的资源看看,学习了,这边看一点,那边看一点,有点乱,迷糊了!
dz007 2009-08-18
  • 打赏
  • 举报
回复
nio比socket难好多呀,先把socket搞好吧

我现在也在写socket呢……
runshine 2009-08-17
  • 打赏
  • 举报
回复
本质都是一样的
SocketChannel属于nio,支持异步非阻塞连接.当然Socket也可以自己来实现非阻塞连接.
一般来说使用SocketChannel会有更好的性能(Socket实际应该比SocketChannel更高效,不过一般使用到最后,由于使用者设计等原因,效率反而比直接使用SocketChannel低)
大概是这样的
runshine 2009-08-17
  • 打赏
  • 举报
回复
当然需要ip以及端口了,不然和谁连接啊...你不知道人家家的地址怎么去串门

你注意,SocketChannel的是abstract类,其构造方法也是protected
你要使用SocketChannel,也是需要由一个Socket对象得到的,Socket.getChannel()
你的Socket对象的完整声明是需要ip以及端口的
njciapple 2009-08-17
  • 打赏
  • 举报
回复
用SocketChannel发送数据时,是不是直接SocketChannel对象.Write("....数据");就能发出去了,需不需要像Socket那样要IP和端口的?

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧