TCP自连接

简介:

陈硕的第8节视频介绍了TCP自连接这个特性。

程序代码类似于:

for i in range(65536):
    try:
        sock = socket.create_connection(('localhost', port))
        time.sleep(60*60)
    except:
        ...

这里主要是这样的一个逻辑:

首先在循环中每次尝试创建连接的时候,TCP会分配一个IP给客户端,这个IP不是每次都随机的而是会自增。在最多尝试了65536或更少次后,一定会恰好和我们输入的port参数重合(如果port没有被占用),那么就产生了一个客户端连接到自己的现象。要避免这个现象,可以在网络库中进行判断。


目录
相关文章
|
Android开发
Android中的WebView之loadDataWithBaseURL()与loadData()
Android中的WebView之loadDataWithBaseURL()与loadData() WebView 加载数据的常用的几种方法如下: public void loadUrl(String url, Map additionalHttpH...
2311 0
|
Java 关系型数据库 MySQL
【JVM】JDBC案例打破双亲委派机制
【JVM】JDBC案例打破双亲委派机制
313 4
|
消息中间件 存储 算法
时间轮在Kafka的实践:技术深度剖析
【8月更文挑战第13天】在分布式消息系统Kafka中,时间轮(Timing Wheel)作为一种高效的时间调度机制,被广泛应用于处理各种延时操作,如延时生产、延时拉取和延时删除等。本文将深入探讨时间轮在Kafka中的实践应用,解析其技术原理、优势及具体实现方式。
373 2
|
Rust Shell 索引
使用阿里云镜像加速Rust与Cargo安装及更新
使用阿里云镜像加速Rust与Cargo安装及更新
8504 1
|
算法 Java 容器
深入解析Java并发库(JUC)中的LongAdder
深入解析Java并发库(JUC)中的LongAdder
|
Linux Ubuntu
蓝易云 - Linux学习之Ubuntu20使用systemd管理OpenResty服务
这就是在Ubuntu 20使用systemd管理OpenResty服务的基本方法。
271 3
|
NoSQL Java 关系型数据库
Java基础教程(21)-Java连接MongoDB
【4月更文挑战第21天】MongoDB是开源的NoSQL数据库,强调高性能和灵活性。Java应用通过MongoDB Java驱动与之交互,涉及MongoClient、MongoDatabase、MongoCollection和Document等组件。连接MongoDB的步骤包括:配置连接字符串、创建MongoClient、选择数据库和集合。伪代码示例展示了如何建立连接、插入和查询数据。
334 1
|
关系型数据库 Linux 网络安全
postgresql 出现连接不上问题(或者安装完连接不上)附加安装教程 亲测有效!
postgresql 出现连接不上问题(或者安装完连接不上)附加安装教程 亲测有效!
473 0
|
消息中间件 Kafka API
【Kafka】kafka 如何不消费重复数据?
【4月更文挑战第7天】【Kafka】kafka 如何不消费重复数据?
|
Java Maven
设置一个项目为Maven项目以及解除Maven项目
设置一个项目为Maven项目以及解除Maven项目
347 0