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