ilikevc
LV.1
这个用户很懒,还没有个人简介
声望 55
关注 0
粉丝 0
私信
主帖 21
回帖
视频
提问
回答
资源
专栏
我们了解下这篇文的目录。代码执行send成功后,数据就发出去了吗?回答这个问题之前,需要了解什么是Socket缓冲区。Socket缓冲区什么是socket缓冲区编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的​​socketAPI​​。socket在操作系统层面,可以理解为一个文件。我们可以对这个文件进行一些方法操作。用​​listen​​方法,可以让程序作为服务器监听其他客户端的连接。用​​connect​​,可以作为客户端连...
2022-12-19 11:57:46 631浏览 0点赞 0回复 0收藏
我们都知道,TCP是个面向连接的、可靠的、基于字节流的传输层通信协议。那这里面提到的"面向连接",意味着需要建立连接,使用连接,释放连接。建立连接是指我们熟知的TCP三次握手。而使用连接,则是通过一发送、一确认的形式,进行数据传输。还有就是释放连接,也就是我们常见的TCP四次挥手。TCP四次挥手大家应该比较了解了,但大家见过三次挥手吗?还有两次挥手呢?都见过?那四次握手呢?今天这个话题,不想只是猎奇,也不想...
2022-12-09 13:57:51 924浏览 0点赞 0回复 0收藏
下面是这篇文章的目录。什么是RST我们都知道TCP正常情况下断开连接是用四次挥手,那是正常时候的优雅做法。但异常情况下,收发双方都不一定正常,连挥手这件事本身都可能做不到,所以就需要一个机制去强行关闭连接。RST就是用于这种情况,一般用来异常地关闭一个连接。它是一个TCP包头中的标志位。正常情况下,不管是发出,还是收到置了这个标志位的数据包,相应的内存、端口等连接资源都会被释放。从效果上来看就是TCP连接被关...
2022-12-09 13:57:00 1369浏览 0点赞 0回复 0收藏
我们先来聊聊你这大半年都做了哪些事情吧。你做的这个事情,业务价值是什么?那你了解这个事情对业务的收益是什么吗?你了解后续业务规划是怎么样的吗?你对业务的规划有什么自己的想法吗?ok,看得出来你对业务的收益和规划都比较清晰,所以你完成了这些需求,也取得了不少结果。但这是业务需求本身的价值,你正好分到了一个容易取得结果的需求,但这是业务属性决定的,你不能说A需求业务价值比B需求更容易拿到结果,其他同事...
2022-12-09 11:57:12 801浏览 0点赞 0回复 0收藏
我们先来说下标题是什么意思。为了更好的理解我说的是啥,我们来举个例子。假设你现在在做一个类似B站的系统,里面放了各种视频。用户每天在里头上传各种视频。按理说每个视频都要去审查一下有没有搞颜色,但总不能人眼挨个看吧。毕竟唐老哥表示这玩意看多了,看太阳都是绿色的,所以会有专门训练过的算法服务去做检测。但也不能上来就整个视频每一帧都拿去做审查吧,所以会在每个视频里根据时长和视频类型随机抽出好几张图片去...
2022-12-09 11:56:14 377浏览 0点赞 0回复 0收藏
兄弟们。浅浅的炫个富吧。说出来你们可能不信。手机你们有吗?我有。短信,知道吧?一条一毛钱,我天天发。你敢想吗?所以说,年轻人,有钱是真的好。今天,我们就以短信为话题聊起。短信,它又叫SMS。比如说,你有一张短信表(sms),里面放了各种需要发送的短信信息。需要注意的是state字段,为0的时候说明这时候短信还未发送。此时还会有一个异步线程不断的捞起未发送(state0)的短信数据,执行发短信操作,发送成功之后state...
2022-12-09 11:53:20 469浏览 0点赞 0回复 0收藏
我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议?于是就到网上去搜。不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在用一个我们不认识的概念去解释另外一个我们不认识的概念,懂的人不需要看,不懂的人看了还是不懂。这种看了,又好像没看的感觉,云里雾里的很难受,我懂。为了避免大家有强烈的审丑疲劳,今天我们来尝试重新换个方式...
2022-12-09 11:50:47 448浏览 0点赞 0回复 0收藏
表面上我是个技术博主。但没想到今天成了个情感博主。我是没想到有一天,我会通过技术知识,来挽救粉丝即将破碎的感情。掏心窝子的说。这件事情多少是沾点功德无量了。事情是这样的。最近就有个读者加了我的绿皮聊天软件,女生,头像挺好看的,就在我以为她要我拉她进群发成人专升本广告的时候。画风突然不对劲。她说她男朋友也是个程序员,异地恋,也关注了我,天天研究什么TCP,UDP网络。一研究就是一晚上,一晚上都不回她消...
2022-12-09 11:49:28 664浏览 0点赞 0回复 0收藏
搬运一个在某乎的回答,水一篇文章吧。正常情况下。只要数据传输完了,不管是客户端还是服务端,都可以主动发起四次挥手,释放连接。就跟上图画的一样,假设,这次四次挥手是由客户端主动发起的,那它就是主动方。服务器是被动接收客户端的挥手请求的,叫被动方。客户端和服务器,一开始,都是处于​​ESTABLISHED​​状态。第一次挥手:一般情况下,主动方执行​​close()​​​或​​shutdown()​​​方法,会发个​​FIN报文...
2022-12-09 11:42:16 576浏览 0点赞 0回复 0收藏
平时,我们想要知道,自己的机器到目的机器之间,网络通不通,一般会执行ping命令。一般对于状况良好的网络来说,你能看到它对应的​​loss​​​丢包率为​​0%​​,也就是所谓的能ping通。如果看到丢包率​​100%​​,也就是ping不通。那么问题来了,假设我能ping通某台机器,那这时候如果我改用TCP协议去发数据到目的机器,也一定能通吗?或者换个问法,ping和tcp协议走的网络路径是一样的吗?这时候第一反应就是不一定,...
2022-12-09 11:37:59 615浏览 0点赞 0回复 0收藏
平时我们打开网页,比如购物网站某宝。都是点一下列表商品,跳转一下网页就到了商品详情。从HTTP协议的角度来看,就是点一下网页上的某个按钮,前端发一次HTTP请求,网站返回一次HTTP响应。这种由客户端主动请求,服务器响应的方式也满足大部分网页的功能场景。但有没有发现,这种情况下,服务器从来就不会主动给客户端发一次消息。就像你喜欢的女生从来不会主动找你一样。但如果现在,你在刷网页的时候右下角突然弹出一个小广...
2022-12-09 11:36:52 675浏览 0点赞 0回复 0收藏
什么是HTTPHTTP全称超⽂文本传输协议,也就是HyperTextTransferProtocol。其中我们常见的文本,图片,视频这些东西都可以用超文本进行表示,而我常看的猫片,也属于超文本,所以大家不要再说我偷偷看猫片了,我只是在看超文本。HTTP只是定义了一套传输超文本的规则,只要符合了这一套规则,不管你是用iphone,还是用老爷机,都可以实现猫片的传输。七层网络大概了解了HTTP后,给大家看看它在它们家族里的地位。HTTP位于应用层,...
2022-12-06 11:18:08 651浏览 0点赞 0回复 0收藏
问题packagemainimport("fmt""ioioutil""nethttp""runtime")funcmain(){num:6forindex:0;index<num;index++{resp,:http.Get("https:www.baidu.com"),ioutil.ReadAll(resp.Body)}fmt.Printf("此时goroutine个数%d\n",runtime.NumGoroutine())}上面这道题在不执行​​resp.Body.Close()​​的情况下,泄漏了吗?如果泄漏,泄漏了多少个​​goroutine​​怎么答不进行​​resp.Body.Close()​​,泄漏是一定的。但是泄漏的​​goro...
2022-12-06 11:17:10 1714浏览 0点赞 0回复 0收藏
问题packagemainimport("fmt""reflect""unsafe")funcmain(){vars1[]ints2:make([]int,0)s4:make([]int,0)fmt.Printf("s1pointer:%+v,s2pointer:%+v,s4pointer:%+v,\n",(reflect.SliceHeader)(unsafe.Pointer(&s1)),(reflect.SliceHeader)(unsafe.Pointer(&s2)),(reflect.SliceHeader)(unsafe.Pointer(&s4)))fmt.Printf("%v\n",((reflect.SliceHeader)(unsafe.Pointer(&s1))).Data((reflect.SliceHeader)(unsafe.Pointer(&s2)))....
2022-12-06 11:16:29 534浏览 0点赞 0回复 0收藏
问题packagemainimport"fmt"funcmain(){s:[]int{1,2,3,4,5}for,v:ranges{sappend(s,v)fmt.Printf("len(s)%v\n",len(s))}}这个代码会造成死循环吗?怎么答不会死循环,​​forrange​​​其实是​​golang​​​的​​语法糖​​​,在循环开始前会获取切片的长度​​len(切片)​​​,然后再执行​​len(切片)​​次数的循环。解释​​forrange​​的源码是Theloopwegenerate:fortemp:rangelentemp:len(fortemp)forindextemp0;i...
2022-12-06 11:15:30 655浏览 0点赞 0回复 0收藏
问题​​for​​​循环​​select​​​时,如果通道已经关闭会怎么样?如果​​select​​​中的​​case​​只有一个,又会怎么样?怎么答for循环​​select​​时,如果其中一个case通道已经关闭,则每次都会执行到这个case。如果select里边只有一个case,而这个case被关闭了,则会出现死循环。解释1.for循环里被关闭的通道​​c通道​​​是一个缓冲为​​0​​​的通道,在​​main​​​开始时,启动一个协程对​​c通道...
2022-12-06 11:14:41 1118浏览 0点赞 0回复 0收藏
问题​​json​​​包里使用的时候,会结构体里的字段边上加​​tag​​​,有没有什么办法可以获取到这个​​tag​​的内容呢?举例tag信息可以通过反射(reflect包)内的方法获取,通过一个例子加深理解。packagemainimport("fmt""reflect")typeJstruct{astring小写无tagbstringjson:"B"小写+tagCstring大写无tagDstringjson:"DD"otherTag:"good"大写+tag}funcprintTag(struinterface{}){t:reflect.TypeOf(stru).Elem()fori:0...
2022-12-06 11:13:53 904浏览 0点赞 0回复 0收藏
问题​​json​​​包里使用的时候,结构体里的变量不加​​tag​​​能不能正常转成​​json​​里的字段?怎么答如果变量​​首字母小写​​​,则为​​private​​​。无论如何​​不能转​​​,因为取不到​​反射信息​​。如果变量​​首字母大写​​​,则为​​public​​。​​不加tag​​​,可以正常转为​​json​​​里的字段,​​json​​​内字段名跟结构体内字段​​原名一致​​。​​加了tag​​​,从​...
2022-12-06 11:12:48 1247浏览 0点赞 0回复 0收藏
问题怎么避免内存逃逸?怎么答在​​runtimestubs.go:133​​​有个函数叫​​noescape​​​。​​noescape​​可以在逃逸分析中隐藏一个指针。让这个指针在逃逸分析中不会被检测为逃逸。noescapehidesapointerfromescapeanalysis.noescapeistheidentityfunctionbutescapeanalysisdoesn'tthinktheoutputdependsontheinput.noescapeisinlinedandcurrentlycompilesdowntozeroinstructions.USECAREFULLY!go:nosplitfuncnoescape(p...
2022-12-06 11:12:29 1344浏览 0点赞 0回复 0收藏
问题知道golang的内存逃逸吗?什么情况下会发生内存逃逸?怎么答​​golang程序变量​​​会携带有一组校验数据,用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验,它就可以在​​栈上​​​分配。否则就说它​​逃逸​​​了,必须在​​堆上分配​​。能引起变量逃逸到堆上的典型情况:在方法内把局部变量指针返回局部变量原本应该在栈中分配,在栈中回收。但是由于返回时被外部引用,因此其生命周期...
2022-12-06 11:11:43 1888浏览 0点赞 0回复 0收藏