SocketIO基础

本文深入探讨了TCP协议与Socket的概念,详细解释了在Linux环境下,Java应用程序如何与内核交互建立Socket连接,包括三次握手、四次挥手的过程。同时,讨论了内核中的发送队列和接收队列以及数据包大小限制,为理解Socket通信提供了全面的视角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明

文中提到的应用程序特指JAVA应用程序

本文涉及的Linux基础命令

netstat -natp  查看端口相关信息

lsof -p pid  查看某个进程打开的fd相关信息

ls -l /proc/pid/fd 查看某个进程打开的fd相关信息

什么是TCP

TCP是一种面向连接的、可靠的传输协议

Client(客户端)和 Server(服务端)建立连接需要经过三次握手,断开连接需要完成四次挥手

什么是Socket

Linux一切皆文件,Socket是其中一种文件类型

ls -l /proc/pid/fd  查看某个进程的fd可以看到socket文件类型

  • lrwx------. 1 root root 64 Dec 13 16:42 4 -> socket:[3848983]
  • lrwx------. 1 root root 64 Dec 13 16:42 5 -> socket:[3848985]

socket可以简单理解为ServerIP;ServerPort  +  ClientIP;ClientPort 这样一个四元组组成

端口的最大限制:65535

单进程fd数量限制:根据Linux系统用户的不同,可以修改不同的数量限制,使用ulimit -a 命令查询

ulimit -a
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8

查询所有进程已经使用的fd

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值