不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-07-20 21:49  分类:Java  编辑

NIO2.0引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。异步通道提供两种方式获取获取操作结果。

  1. 通过java.util.concurrent.Future类来表示异步操作的结果;
  2. 在执行异步操作的时候传入一个java.nio.channels。
作者:php-note.com  发布于:2019-07-20 19:16  分类:Java  编辑

poll 函数的返回值是一个整数,得到了这个返回值以后,我们还是要逐个去检查,比如说,有一万个socket同时poll,返回值是3,我们还是只能去遍历这一万个socket,看看它们是否有IO动作。这就很低效了,于是,就有了epoll的改进,epoll可以直接通过“输出参数”(可以理解为C语言中的指针类型的参数),一个 epoll_event 数组,直接获得这三个socket,这就比较快了。

作者:php-note.com  发布于:2019-07-20 13:04  分类:Java  编辑

Channel是一个通道,可以通过它读取和写入数据,它就像自来水管一样,网络数据通过Channel读取和写入。通道与流的不同之处在于通道是双向的,流只是在一个方向上移动(一个流必须是InputStream或者OutputStream的子类),而且通道可以用于读、写或者同事用于读写。因为Channel是全双工的,所以它可以比流更好地映射底层操作系统的API。特别是在UNIX网络编程模型中,底层操作系统的通道都是全双工的,同时支持读写操作。

作者:php-note.com  发布于:2017-01-16 09:10  分类:PHP基础  编辑

 对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:

  1. 什么是TCP/IP、UDP?
  2. Socket在哪里呢?
  3. Socket是什么呢?
  4. 你会使用它们吗?
作者:php-note.com  发布于:2016-11-29 19:24  分类:Linux_C  编辑

所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址。比如 0x12345678 在大端机上是 12345678,在小端机上是 78564312,而一个主机是大端还是小端要看CPU类型以及运行在上面的操作系统。同一款CPU在不同的操作系统使用的大小端情况是不同的。当然我们通常使用的 x86 + windows是小端。

作者:php-note.com  发布于:2016-11-29 19:23  分类:Linux_C  编辑

不同的CPU有不同的字节序类型,这些字节序是指 整数 在内存中保存的顺序,这个叫做 主机序

最常见的有两种:

1.Little endian:将低序字节存储在起始地址

作者:php-note.com  发布于:2016-08-04 14:38  分类:Linux_C  编辑

在写网络程序的时候,建立TCP socket:

sock = socket(PF_INET, SOCK_STREAM, 0);

然后再绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置问AF_INET,即使用IP。

作者:php-note.com  发布于:2016-07-19 14:06  分类:Linux_C  编辑

“一切皆Socket!”

话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。

——有感于实际编程和开源项目研究。