首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux】: Socket 编程

    参数: socket:监听套接字描述符。 backlog:全连接队列的最大长度,用于处理多个客户端连接请求。...7.4 接收连接请求 (TCP 服务器) 服务器使用 accept() 从连接队列中提取下一个连接请求,并返回新的套接字用于与客户端通信: int accept(int socket, struct sockaddr...local.sin_addr.s_addr = INADDR_ANY; Listening Socket vs Connected Socket Listening Socket:服务器使用它来监听连接请求...Connected Socket:服务器接收连接请求后,用于与客户端通信的套接字。每个客户端有一个独立的连接套接字。...客户端连接:客户端通过 socket() 创建套接字,使用 connect() 发起连接请求。 三次握手:TCP 客户端与服务器通过三次握手建立连接。

    2.1K10

    使用http维持socket长连接

    项目中有遇到问题如下: 1、旧版的cs服务,因为每个用户和唯一的长连接是在登录后绑定的,并且所有的消息报文均是基于该长连接去发送接收的,所以要求node服务要维持一个长连接,然后根据该用户获取长连接,拿到连接再去发送对应请求...,tcp协议顶层是可以使用http传输的,nodejs中http模块内置的agent对象,便可以设置keepalive的方式维持这种长连接,具体方式如下: module.exports.httpPost...'data', data => { buffers += data }) res.on('end', () => { // 更新全局用户关联的长连接代理类...协议进行点对点发送,浏览器端不可能建立UDP监听吧,为了接收报警数据又不改动原有cs服务的原则,可以在node服务层开启websocket服务,浏览器端负责链接该服务,同时node服务作为udp的client去连接报警的...总结: 1、遇到问题多思考,能通过转发解决的问题就不要通过改写接口去解决(确保旧版服务不变动的原则) 2、socket通讯模块,代码写的时候尽量多考虑一些极端情况,比如链接丢失、用户下线、服务挂了的情况

    1.9K00

    一篇搞懂TCP、HTTP、Socket、Socket连接池

    前言:作为一名开发人员我们经常会听到HTTP协议、TCP/IP协议、UDP协议、Socket、Socket长连接、Socket连接池等字眼,然而它们之间的关系、区别及原理并不是所有人都能理解清楚,这篇文章就从网络协议基础开始到...实际并发连接数受限于linux可打开文件数,这个数是可以配置的,可以非常大,所以实际上受限于系统性能。...例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成Socket错误,而且频繁的Socket创建也是对资源的浪费。...Socket连接池 什么是Socket连接池,池的概念可以联想到是一种资源的集合,所以Socket连接池,就是维护着一定数量Socket长连接的集合。...Socket连接资源。

    2.4K20

    socket连接和通信过程解析

    网络通信的标准流程是,服务端新建一个socket,然后在该socket中绑定一个地址,再设置该socket为监听socket,然后阻塞在accept等待连接。...客户端新建一个socket,然后connect到一个服务端的地址。下面分析一下这个过程。看多个客户端或者多个连接是如何在一个监听的socket中完成通信的。...所以根据tcp数据包,可以找到对应的socket。接着判断找到的socket的状态。 if(sk->state!...// 分配一个新的sock结构用于连接连接 newsk = (struct sock *) kmalloc(sizeof(struct sock), GFP_ATOMIC); // 从listen套接字复制内容...我们知道的第二点是多个客户端或者连接,是如何在一个监听的sock中完成tcp的建立,又是从监听的sock中过渡到数据通信sock,最后在新加的sock中完成数据通信的。

    1.9K20

    OpenHarmony 网络管理-Socket连接(UDP)

    本示例主要演示了Socket在网络通信方面的应用,展示了Socket在两端设备的连接验证、聊天通信方面的应用。...constructUDPSocketInstance方法创建一个UDPSocket对象创建房间模块点击创建房间按钮,弹出创建房间框,输入房间号,点击确定,进入聊天页面聊天模块bindOption方法监听消息,设置在线与离线相关概念UDP Socket...是面向非连接的协议,它不与对方建立连接,而是直接把我要发的数据报发给对方,适用于一次传输数据量很少、对可靠性要求不高的或对实时性要求高的应用场景。...下载如需单独下载本工程,执行如下命令:git initgit config core.sparsecheckout trueecho code\BasicFeature\Connectivity\Socket

    78220

    切实解决socket连接掉线检测

    原文:切实解决socket连接掉线检测 新公司在做物联网,要做与modbus设备的通讯服务。在过程中除了研究modbus协议外,最麻烦的就是设备在线状态的检测问题。...Socket本身无法很好的捕获连接断开事件,或者说根本没这功能。总不能每次发生数据通讯时,通过异常来判断吧。...keep-alive简单来说,就是tcp协议中制定的心跳检测,用来判断连接是否存活。默认是不启动的,需要进行设置。...这里说一下,查询过程中发现很多人使用socket去poll来进行判断,在测试中,发现不好用,响应不及时,后来多方查找资料并测试,发现通过系统本身的连接来进行判断比较准确,方法如下: /// 连接就ok。

    3.2K10

    一篇搞懂TCP、HTTP、Socket、Socket连接池

    前言:作为一名开发人员我们经常会听到HTTP协议、TCP/IP协议、UDP协议、Socket、Socket长连接、Socket连接池等字眼,然而它们之间的关系、区别及原理并不是所有人都能理解清楚,这篇文章就从网络协议基础开始到...实际并发连接数受限于linux可打开文件数,这个数是可以配置的,可以非常大,所以实际上受限于系统性能。...例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成Socket错误,而且频繁的Socket创建也是对资源的浪费。...Socket连接池 什么是Socket连接池,池的概念可以联想到是一种资源的集合,所以Socket连接池,就是维护着一定数量Socket长连接的集合。...Socket连接了,直接从连接池里面获取Socket连接资源。

    4.1K21
    领券