随笔分类 - 04 网络编程

摘要:X-Forwarded-For和相关几个头部的理解 $remote_addr 是nginx与客户端进行TCP连接过程中,获得的客户端真实地址. Remote Address 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求 X- 阅读全文

posted @ 2020-04-30 10:23 panchanggui 阅读(496) 评论(0) 推荐(0) 编辑 |

摘要:本文转自:https://www.cnblogs.com/mamimi/p/10602722.html 前言 自后台restful接口流行开来,请求了两次的情况(options请求)越来越普遍。笔者也在实际的项目中遇到过这种情况,做一下整理总结。 文章书写思路: 为什么发生两次请求 http的请求方 阅读全文

posted @ 2019-08-23 10:57 panchanggui 阅读(1042) 评论(0) 推荐(0) 编辑 |

摘要:有一段时间,在考虑下socket 之间集群 可以在Nginx 下可以 但是不同服务器之间怎么通讯呢 后来自己也想可不可以用什么东西或者中间件来通讯 ,后来在百度之下 发现果然就是按照我所想的 ,在网上看了一个方案,架构如下: 说一下这个方案他们之间的作用 redis : 存取用户和服务器的关系,如果 阅读全文

posted @ 2018-10-24 10:01 panchanggui 阅读(2011) 评论(0) 推荐(0) 编辑 |

摘要:对于一些基于TCP Socket的大型C/S应用来说,能进行跨服务器通信可能是一个绕不开的功能性需求。出现这种需求的场景类似于下面描述的这种情况。 假设,我们一台TCP应用服务器能同时承载10000人同时在线,而同时在线用户数量通常为5万多,那可想而知,我们需要部署6台TCP应用服务器来分担这些负载 阅读全文

posted @ 2018-10-24 09:57 panchanggui 阅读(706) 评论(0) 推荐(0) 编辑 |

摘要:前言 物联网如今是一个大的趋势,但是概念还比较新颖。大家对这一块的技术积累也比较匮乏,借此前段时间摩拜单车出现了大规模瘫痪的现象。我们今天来讨论一下物联网项目的开发方式。 关于tcp/ip 相关的知识点 tcp三次握手,四次挥手http://blog.csdn.net/whuslei/article 阅读全文

posted @ 2018-10-24 09:35 panchanggui 阅读(3605) 评论(0) 推荐(0) 编辑 |

摘要:netty的异常 IllegalReferenceCountException refCnt: 0 这是因为Netty有引用计数器的原因,自从Netty 4开始,对象的生命周期由它们的引用计数(reference counts)管理,而不是由垃圾收集器(garbage collector)管理了。B 阅读全文

posted @ 2018-10-22 20:10 panchanggui 阅读(1061) 评论(0) 推荐(0) 编辑 |

摘要:一、DEMO 官方并没有使用Hello World来作为一个例子,而是采用RFC的DISCARD,这个协议定义了就是接收到请求后什么也不干。 第一步编写DiscardServerHandler类: 第二步编写DiscardServer: 二、ECHO协议的DEMO ECHO协议,定义了客户端请求啥就 阅读全文

posted @ 2018-10-22 12:43 panchanggui 阅读(2474) 评论(0) 推荐(0) 编辑 |

摘要:服务端代码示例 TimeServer 客户端代码示例: TimeClient maven依赖: 来源:https://www.cnblogs.com/wade-luffy/p/6165626.html 阅读全文

posted @ 2018-10-22 12:35 panchanggui 阅读(174) 评论(0) 推荐(0) 编辑 |

摘要:1,Netty简述 2,Netty原理 3,Netty应用场景 阅读全文

posted @ 2018-10-22 09:33 panchanggui 阅读(391) 评论(0) 推荐(0) 编辑 |

摘要:1. Netty简介Netty是一个高性能、异步事件驱动的NIO框架,基于JAVA NIO提供的API实现。它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得I 阅读全文

posted @ 2018-10-22 09:09 panchanggui 阅读(253) 评论(0) 推荐(0) 编辑 |

摘要:项目需要使用netty做中转服务器,同时支持两种不同协议的客户端,经过几天查询资料终于找到合适的方案了,同时感谢Netty权威指南及论坛问答,开始贴代码 客户端1==》socket 客户端2==》http main==>开启两个监听线程 阅读全文

posted @ 2018-10-18 18:21 panchanggui 阅读(3334) 评论(0) 推荐(0) 编辑 |

摘要:Mina Mina(Multipurpose Infrastructure for Network Applications) 是 Apache组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 Mina 版本2.04支持基于 JavaNIO 技术的 TCP/ 阅读全文

posted @ 2018-10-18 10:10 panchanggui 阅读(197) 评论(0) 推荐(0) 编辑 |

摘要:转:http://blog.csdn.net/l1008610/article/details/52197602 以前作者也一直以为数据包先发的不一定先到,直到今天才意识这个问题的缺陷,数据包是不一定先发先到,但是对于TCP有一点特殊,若我们接受的数据包是在应用层,并且应用层用的是TCP的传输协议的 阅读全文

posted @ 2018-10-09 14:27 panchanggui 阅读(1679) 评论(0) 推荐(0) 编辑 |

摘要:① TCP是个流协议,它存在粘包问题 TCP是一个基于字节流的传输服务,"流"意味着TCP所传输的数据是没有边界的。这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的。TCP的发送方无法保证对等方每次接收到的是一个完整的数据包。主机A向主机B发送两个数据包,主机B的接收情况可能是 产生粘包 阅读全文

posted @ 2018-10-08 09:28 panchanggui 阅读(4274) 评论(0) 推荐(0) 编辑 |

摘要:一般在socket处理大数据量传输的时候会产生粘包和半包问题,有的时候tcp为了提高效率会缓冲N个包后再一起发出去,这个与缓存和网络有关系。 粘包 为x.5个包 半包 为0.5个包 由于网络原因 一次可能会来 0.5/1 /2/ 2.5/ 。。。。个包 当接收到时 要先看看那这个包中有多少个完整的包 阅读全文

posted @ 2018-10-06 19:43 panchanggui 阅读(5353) 评论(0) 推荐(0) 编辑 |

摘要:1. socket编程时容易碰到如下异常: java.net.SocketException: Connection reset by peer: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method 阅读全文

posted @ 2018-09-18 10:45 panchanggui 阅读(2834) 评论(0) 推荐(0) 编辑 |

摘要:要判断socket连接链路是否可用时,不能通过socket.isClosed() 和 socket.isConnected() 方法判断,要通过心跳包 socket.sendUrgentData(0xFF) 。 当第一次连接成功后, socket.isClosed() ==false, socket 阅读全文

posted @ 2018-09-17 21:00 panchanggui 阅读(350) 评论(0) 推荐(0) 编辑 |

摘要:socket创建 函数原型: int socket(int domain, int type, int protocol); 参数说明: domain:协议域,又称协议族(family)。常用的协议族有AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域Socket)、 阅读全文

posted @ 2018-08-22 17:34 panchanggui 阅读(112) 评论(0) 推荐(0) 编辑 |

摘要:Socket理论 本地IP地址、本地端口号、外地IP地址、外地端口号组成一对套接字对。 socket(套接字),就是 IP:端口号的形式。 一个完整的Socket有一个本地唯一的Socket号,由操作系统分配。 每进行一个新的Socket连接,实际是产生了新的socket实例对象。 阅读全文

posted @ 2018-08-22 17:32 panchanggui 阅读(53) 评论(0) 推荐(0) 编辑 |

摘要:在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少? 如何标识一个TCP连接 在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{local ip, 阅读全文

posted @ 2018-08-22 16:53 panchanggui 阅读(180) 评论(0) 推荐(0) 编辑 |

摘要:Netty框架 阅读全文

posted @ 2018-08-22 16:52 panchanggui 阅读(63) 评论(0) 推荐(0) 编辑 |

摘要:涉及到相关重要组件: 这两个组件都实现了ChannelInboundHandler接口,这说明这两个组件都是用来解码网络上过来的数据的。而他们的顺序一般是ByteToMessageDecoder位于head channel handler的后面,MessageToMessageDecoder位于By 阅读全文

posted @ 2018-08-22 16:51 panchanggui 阅读(278) 评论(0) 推荐(0) 编辑 |

摘要:粘包拆包问题是处于网络比较底层的问题,在数据链路层、网络层以及传输层都有可能发生。我们日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生粘包拆包问题,因此粘包拆包问题只发生在TCP协议中。 什么是粘包、拆包? 假设客户端向服务端连续发送了两个数据包,用packet1和packet 阅读全文

posted @ 2018-08-22 16:50 panchanggui 阅读(9358) 评论(1) 推荐(2) 编辑 |

摘要:1.进程的优雅退出 1.1.Kill -9 PID带来的问题 在Linux上通常会通过kill -9 pid的方式强制将某个进程杀掉,这种方式简单高效,因此很多程序的停止脚本经常会选择使用kill -9 pid的方式。 无论是Linux的Kill -9 pid还是windows的taskkill / 阅读全文

posted @ 2018-07-11 11:31 panchanggui 阅读(3745) 评论(0) 推荐(0) 编辑 |

posts - 633, comments - 19, trackbacks - 0, articles - 0

Copyright © 2020 panchanggui
Powered by .NET 5.0.0-rc.2.20475.5 on Kubernetes