DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  网络编程

1 2 3 4 5 ··· 9 下一页

摘要:【并发编程七】进程通信——套接字(socket)_80行代码实现一个聊天软件 一、简介 二、相关知识介绍 1、winsock1.h、winsock2.h 2、如何使用ws2_32.dll 3、WSAStartup() 函数 4、socket 5、bind 5、listen 6、accept 7、co 阅读全文
posted @ 2023-03-16 16:19 DoubleLi 阅读(255) 评论(0) 推荐(0) 编辑

摘要:今天在生产环境遇到了一个奇怪的网络现象,通过抓包发现,SYN包没有ACK。可以ping通,防火墙开放的情况下,基本确定对方服务器问题。首先排除端口是否已经耗尽,发现仍有很多富余那么可能就是linux内核网络参数tcp_tw_recycle捣鬼。登录对方主机发现这个参数的确被设置成1. # sysct 阅读全文
posted @ 2021-11-30 11:13 DoubleLi 阅读(500) 评论(0) 推荐(0) 编辑

摘要:对于tcp连接 TIME_WAIT使用建议使用以下优化方式: 1.修改net.ipv4.ip_local_port_range参数,增加客户端端口可用范围。2.或服务器IP,让服务器能容纳足够多的TIME-WAIT状态连接。在我们常见的互联网架构中(NGINX反代跟NGINX,NGINX跟FPM,F 阅读全文
posted @ 2021-11-30 11:13 DoubleLi 阅读(482) 评论(0) 推荐(0) 编辑

摘要:本文为翻译英文BLOG《Coping with the TCP TIME-WAIT state on busy Linux servers》,但并非完整的翻译,译者CFC4N对原文理解后,进行了调整,增加了相关论点论据,跟原文稍有不同。翻译的目的,是为了加深自己知识点的记忆,以及分享给其他朋友,或许 阅读全文
posted @ 2021-11-29 11:57 DoubleLi 阅读(122) 评论(0) 推荐(0) 编辑

摘要:首先,问题中描述的65535个连接指的是客户端连接数的限制。 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少呢? 如何标识一个TCP连接 在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系 阅读全文
posted @ 2021-11-29 11:49 DoubleLi 阅读(1280) 评论(0) 推荐(0) 编辑

摘要:背景: 笔者负责的一个项目在实时性方面有着较高要求,低延时是一个技术指标,希望能够尽可能减少延迟,来优化服务体验。 所以需要在UDP方面进行一些调研。 而我们的数据协议是建立在可靠网络传输协议之上的,它的数据包之间有一些关联,不允许丢包。 因而将TCP迁移到使用Reliable UDP可能是一个优化 阅读全文
posted @ 2021-09-16 11:41 DoubleLi 阅读(2583) 评论(0) 推荐(0) 编辑

摘要:C:socket相关的sendto()函数简介 http://blog.csdn.net/flytiger_ouc/article/details/19634279 文中提到SOCK_DGRAM, SOCK_STREAM类型套接口 UDP sendto和recvfrom使用详解 比较完整的介绍了ud 阅读全文
posted @ 2021-01-22 18:05 DoubleLi 阅读(1126) 评论(0) 推荐(0) 编辑

摘要:摘要:本文将讨论UDP的并发实现机制。给出了两种实现方法。第一种是最为常见的,TFTP传输的方式。第二种是对UDP进一步封装,以达到并发的可能。主要是采用队列、多线程的方法。后面会给出一个简单的实现例子,以供大家参考。功能方面较为简单,以后会慢慢完善。 众所周知,通常所见的的TCP服务器都是并发实现 阅读全文
posted @ 2021-01-22 17:55 DoubleLi 阅读(622) 评论(0) 推荐(0) 编辑

摘要:转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=28502731&id=3651271 大多数UDP服务器程序是迭代运行的,服务器等待一个客户请求,读入这个请求,处理这个请求,送回其应答,再等待下一个客户请求。 然而当客户请求的处 阅读全文
posted @ 2021-01-22 17:51 DoubleLi 阅读(614) 评论(0) 推荐(0) 编辑

摘要:一、tcp并发与udp并发的区别 无论是epoll还是select,在观察有无数据就绪时,都是针对多个文件描述符。如果只有一个文件描述符,那么进程只要观察那一个文件描述符即可。在网络编程中,一个Socket对应一个文件描述符。Tcp协议的server在监听端口前初始化一个socket,每有一个新的连 阅读全文
posted @ 2021-01-22 17:42 DoubleLi 阅读(949) 评论(0) 推荐(0) 编辑

摘要:大多数UDP服务器程序是迭代运行的,服务器等待一个客户请求,读入这个请求,处理这个请求,送回其应答,再等待下一个客户请求。 然而当客户请求的处理需要消耗过长的时间时,我们期望UDP服务器程序具有某种形式的并发性。 当使用TCP时,服务器的并发处理得以简化的根源在于每个客户连接都是唯一的(不同的已连接 阅读全文
posted @ 2021-01-22 17:37 DoubleLi 阅读(397) 评论(0) 推荐(0) 编辑

摘要:引言 作为文章“《从TCP三次握手说起:浅析TCP协议中的疑难杂症》”的姊妹篇,很早就计划写篇关于UDP的文章,尽管UDP协议远没TCP协议那么庞大、复杂,但是,要想将UDP描述清楚,用好UDP却要比TCP难不少,于是文章从下笔写,到最终写成,断断续续拖了好几个月。 对应系列的上一篇:《告知你不为人 阅读全文
posted @ 2021-01-22 17:08 DoubleLi 阅读(816) 评论(0) 推荐(0) 编辑

摘要:前言 socket在默认情况下是阻塞状态的,这就使得发送和接受都处于阻塞状态; TCP协议下发送选用send,UDP协议下,发送选用sendto. TCP协议下接收选用recv,UDP协议下,接收选用recvfrom. 一、阻塞模式&&send 假设发送缓冲区大小为4096KB,其中已经使用4000 阅读全文
posted @ 2021-01-22 16:41 DoubleLi 阅读(1880) 评论(0) 推荐(0) 编辑

摘要:首先socket在默认情况下是阻塞状态的,这就使得发送以及接收操作处于阻塞的状态,即调用不会立即返回,而是进入睡眠等待操作完成。下面把讨论点分为发送以及接收。 一.发送选用send(这里特指TCP)以及sendto(这里特指UDP)来描述 首先需要说明的是,不管阻塞还是非阻塞,在发送时都会将数据从应 阅读全文
posted @ 2021-01-22 16:39 DoubleLi 阅读(1816) 评论(0) 推荐(0) 编辑

摘要:【引言】 说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼。本文就是来说说这些头疼点的,浅谈一些TCP的疑难杂症。那么从哪说起呢?当然是从三次握手和四次挥手说起啦,可能大家都知道TCP是三次交互完成连接的建立,四次交 阅读全文
posted @ 2020-10-16 11:42 DoubleLi 阅读(518) 评论(0) 推荐(0) 编辑

摘要:WINDOWS下: 所谓双网卡,就是通过软件将双网卡绑定为一个IP地址,这个技术对于许多朋友来说并不陌生,许多高档服务器网卡(例如intel8255x系列、3COM服务器网卡等)都具有多网卡绑定功能,可以通过软硬件设置将两块或者多块网卡绑定在同一个IP 地址上,使用起来就好象在使用一块网卡,多网卡绑 阅读全文
posted @ 2019-01-30 09:54 DoubleLi 阅读(4564) 评论(0) 推荐(0) 编辑

摘要:1.CLOSE_WAIT的简单解决方案 不久前,我的Socket Client程序遇到了一个非常尴尬的错误。它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那么程序会自动不断地重试建立连接。 有一天发现程序在不断尝试建立连接,但是总是失败。用netstat查 阅读全文
posted @ 2019-01-28 16:44 DoubleLi 阅读(729) 评论(0) 推荐(0) 编辑

摘要:在客户端连接7302TCP端口失败,关闭程序,启动sockettool也不行,出现错误号为 10055(发现队列满了或者空间不足)。通过查网上资料,发现有两个方法:设置 ( TcpTimedWaitDelay和MaxUserPort设置 ) 本截图只设置了 MaxUserPort(队列 增加),如果 阅读全文
posted @ 2018-09-10 19:27 DoubleLi 阅读(1230) 评论(0) 推荐(0) 编辑

摘要:问题:60多路轮训的情况下,5分钟之后,现场报链接不上子进程的错误。绝大部分为海康设备 分析: 子进程的日志中 存在输入海康的解码库的错误,在子进程的对外dll中加日志发现,socket链接的时候存在10048(通常每个套接字地址(协议/网络地址/端口)只允许使用一次)的错误。公司重现的情况还存在1 阅读全文
posted @ 2018-09-06 09:32 DoubleLi 阅读(928) 评论(0) 推荐(0) 编辑

摘要:setsockopt 设置 SO_LINGER 选项 此选项指定函数close对面向连接的协议如何操作(如TCP)。内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。 SO_LINGER选项用来改变此缺省设置。使用如下结构: struct linger 阅读全文
posted @ 2018-09-05 16:38 DoubleLi 阅读(511) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 9 下一页