格智教育关于socket编程的一点小干货
1.socket
实质爲完成两个进程之间的通讯


2.tcp和udp的区别
TCP:传输控制协议,面向衔接,牢靠。保证数据传输成功。(三次握手和四次分手)
UDP:不牢靠。传输速度快。占零碎资源少。


3.bio,nio和aio
BIO:是当发起I/O的读或写操作时,均爲阻塞方式,直到使用顺序读到了流或许将流


写入数据。
NIO:基于事情驱动思想,常采用reactor(反响器)形式。当发起 IO恳求时,使用顺


序是非阻塞的。当SOCKET有流可读或写的时分,由操作零碎告诉使用顺序,使用顺序


再将流读取到缓冲区或许写入零碎。
AIO:异样基于事情驱动的思想,通常采用Proactor(前摄器形式)完成。在停止I/O操作


时,间接调用API的read或write,这两种办法均爲异步。关于读操作,操作零碎将数据


读到缓冲区,并告诉使用顺序,关于写操作,操作零碎将write办法传递的流写入并自


动告诉使用顺序。它节省了NIO中遍历事情告诉队列的代价。


4.java nio
中心:Channels,Buffers,Selectors
Channel :一切的 IO 在NIO 中都从一个Channel 开端,Channel 有点象流。 数据可


以从Channel读到Buffer中,也可以从Buffer 写到Channel中。(FileChannel、


SocketChannel、ServerSocketChannel)
Buffers:实质上是一块用于读写的内存,包装成了缓冲区对象,你可以经过


allocateDirect()或许allocate()请求内存空间(allocate分配方式发生的内存开支是在


JVM中的,而allocateDirect的分配方式发生的开支在JVM之外,以就是零碎级的内存


分配,运用allocateDirect尤其留意内存溢出成绩),Buffer尤其需求了解三个概念,


capacity、position、limit,capacity是固定大小,position是以后读写地位,limit是


一个相似于门限的值,用于控制读写的最大的地位。Buffer的常用办法有clear、


compact、flip等等,还有比方Buffer的静态办法wrap等等,这些需求依据capacity、


position、limit的值停止了解。,(ByteBuffer,IntBuffer,LongBuffer等)
Selector:用于检测通道,我们经过它才晓得哪个通道发作了哪个事情,所以假如需求


用selector的话就需求首先停止register,然后遍历SelectionKey对事情停止处置。它


一共有SelectionKey.OP_CONNECT、SelectionKey.OP_ACCEPT、


SelectionKey.OP_READ、SelectionKey.OP_WRITE四种事情类型。


5.socket编程根本流程
bio:
效劳器端:
创立ServerSocket对象,绑定监听端口
经过accept()办法监听客户端恳求
衔接树立后,经过输出流读取客户端发送的恳求信息
经过输入流向客户端发送乡音信息
封闭相关资源
客户端:
创立Socket对象,指明需求衔接的效劳器的地址和端口号
衔接树立后,经过输入流想效劳器端发送恳求信息
经过输出流获取效劳器呼应的信息
封闭呼应资源

阅读更多
想对作者说点什么? 我来说一句

金智教育教务管理系统

2015年10月26日 1.46MB 下载

SmartNest自动套料软件标准版

2014年05月14日 11.78MB 下载

没有更多推荐了,返回首页

不良信息举报

格智教育关于socket编程的一点小干货

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭