Socket 有关内容
基础(解释)
socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。socket起源于Unix。主要是用来解决网络通信的。
传统上,套接字是围绕其构建大多数实时聊天系统的解决方案,它提供了客户端和服务器之间的双向通信通道。
框架
将使用Node.JS 确定已经安装过node.je
在项目目录进行安装
npm install安装依赖
npm run start 启动项目
创建成功后将会显示一个文件 如下
让我们创建一个package.json
创建成功如下显示
如果运行node index.js 应该看到以下内容
在浏览器中指向 http://localhost:5050
成功页面将会做出反馈
补充
Socket.IO支持实时、双向和基于事件的通信。
它适用于每一个平台、浏览器或设备,同样注重可靠性和速度
socket()函数
socket()函数用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字及其所用的资源。如果协议protocol未指定(等于0),则使用缺省的连接方式。
对于使用一给定地址族的某一特定套接口,只支持一种协议。但地址族可设为AF_UNSPEC(未指定),这样的话协议参数就要指定了。协议号特定于进行通讯的“通讯域”。
socket缓冲区以及阻塞模式
socket缓冲区
每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。
write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。
TCP协议独立于 write()/send() 函数,数据有可能刚被写入缓冲区就发送到网络,也可能在缓冲区中不断积压,多次写入的数据被一次性发送到网络,这取决于当时的网络情况、当前线程是否空闲等诸多因素,不由程序员控制。