加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

3.6学习内容,androidwifiP2p,golang http.ListenAndServe运行

发布时间:2020-12-16 18:45:20 所属栏目:大数据 来源:网络整理
导读:android p2p两篇文章: http://blog.csdn.net/gophers/article/details/38060307 http://blog.csdn.net/max2005/article/details/12237905 官方文档:http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html golang, http://b

android p2p两篇文章:

http://blog.csdn.net/gophers/article/details/38060307

http://blog.csdn.net/max2005/article/details/12237905

官方文档:http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html


golang,

http://blog.csdn.net/gophers/article/details/37815009


  1. func(srv*Server)Serve(lnet.Listener)error{
  2. deferl.Close()
  3. vartempDelaytime.Duration
  4. //这个循环就是服务器的主循环了,通过传进来的listener接收来自客户端的请求并建立连接,
  5. //然后为每一个连接创建routine执行c.serve(),这个c.serve就是具体的服务处理了
  6. for{
  7. rw,e:=l.Accept()
  8. ife!=nil{
  9. ifne,ok:=e.(net.Error);ok&&ne.Temporary(){
  10. iftempDelay==0{
  11. tempDelay=5*time.Millisecond
  12. }else{
  13. tempDelay*=2
  14. }
  15. ifmax:=1*time.Second;tempDelay>max{
  16. tempDelay=max
  17. }
  18. srv.logf("http:Accepterror:%v;retryingin%v",e,tempDelay)
  19. time.Sleep(tempDelay)
  20. continue
  21. returne
  22. tempDelay=0
  23. c,err:=srv.newConn(rw)
  24. iferr!=nil{
  25. continue
  26. c.setState(c.rwc,StateNew)//beforeServecanreturn
  27. goc.serve()//<-这里为每一个建立的连接创建routine之后进行服务
  28. }
第30行表示用线程处理网络回来的数据,所以go一般都有很多线程

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读