首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

从Linux源码看Socket(TCP)Client端的Connect

今天笔者就来从Linux源码的角度看下Client端的Socket在进行Connect的时候到底做了哪些事情。由于篇幅原因,关于Server端的Accept源码讲解留给下一篇博客。...首先我们通过socket系统调用创建了一个socket,其中指定了SOCK_STREAM,而且最后一个参数为0,也就是建立了一个通常所有的TCP Socket。...如果Client采用短连接的方式和Server端进行交互,就会产生大量的TIME_WAIT状态的Socket。...如下图所示: 由于TIME_WAIT大概一分钟左右才能消失,如果在一分钟内Client端和Server建立大量的短连接请求就容易导致端口号耗尽。...-ENETUNREACH,对应描述为Network is unreachable Client端的三次握手 在前面一大堆前置条件就绪后,才进入到真正的三次握手阶段。

68920

Socket

Socket 据交换,这个双向连接的一端称为一个Socket java.net包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端 建立连接时所需的寻址信息为远程计算机的...端,Client端用的类是Socket,构造方法中的两个参数,第一个是访问的ip,127.0.0.1代表的ip表示本机,也可以用localhost替换,第二个参数代表访问Server端的哪个端口  随后...Client端通过流,向Server端发送消息,Server端调用accept方法首先允许Client端访问,然后也通过流读入Client发送的消息,整个过程是个死循环,模拟真实服务器24小时不间断的操作...向Server端发送消息,而是Server端向Client端发送消息,在Server端中输出代码里,有一个方法getInetAddress,这个返回的不是Serveer端的ip,返回的是Client端的...IP  其次,getPort方法返回的是Client出来的端口号,Client使用哪个端口是系统随机分配的,而Server端开发什么端口是自定义的,这两个有区别 //Server端 import java.net

1K40
领券