java 网络编程

包 java.net

Server

 ServerSocket(int port);//创建一个服务器端套接字,并绑定到指定端口上,
 Socket accept();监听 返回socket
 
 OutputStream SocketgetOutputStream()//获取输出流  发数据
 InputStream SocketgetInputStream()//获取输入流  收数据
 
 Scoket.close()//回话结束 关闭连接

Client

 Socket(InetAddress add, int port);//通过ip port连接服务器 
  
 OutputStream SocketgetOutputStream()//获取输出流
 InputStream SocketgetInputStream()//获取输入流

服务器程序编写:
①调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;②调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字。③调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。④最后关闭通信套接字。

客户端程序编写:
①调用Socket()创建一个流套接字,并连接到服务器端; ②调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。 ③最后关闭通信套接字。


1>:传统socket
阻塞点 
server.accept();
inputStream.read(byte);


单线程情况下只能有一个客户端
用线程池可以有多个客户端链接 但是非常消耗性能!

2>:NIO
NIO单线程可以处理多个客户端 使用轮询方式 底层C++实现使用select 多路复用

ServerSocketChannel   ServerSocket
SocketChannel         Socket
Selector 
SelectionKey  

3>:Netty
netty 版本大致分为 netty3.x  和 netty4.x  netty5.x

netty 可以运用在那些领域?
 1. 分布式进程通信
  hadoop dubbo akka 等具有分布式功能的框架,底层RPC通信都是基于netty

 2. 游戏服务器

   


4>:Mina



http:developer.egret.comcnapidocindexnamedragonBones.Armature
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值