V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  DuckJK  ›  全部回复第 14 页 / 共 31 页
回复总数  602
1 ... 10  11  12  13  14  15  16  17  18  19 ... 31  
2016-03-25 16:48:09 +08:00
回复了 ubear1991 创建的主题 问与答 关于套接字的疑问
@iMouseWu 我认为你说的这种是 I/O 多路复用搭配 non-blocking 的问题, https://www.zhihu.com/question/37271342 ,里面的回答是这样的:

Under Linux, select() may report a socket file descriptor as "ready for reading", while nevertheless a subsequent read blocks. This could for example happen when
data has arrived but upon examination has wrong checksum and is discarded. There may be other circumstances in which a file descriptor is spuriously reported as
ready. Thus it may be safer to use O_NONBLOCK on sockets that should not block.

里面说的是 select 和 read , select 和 read 是两个独立的系统调用,当 select 可读的时候, read 不一定可读。我没有查 accept 的 man 手册,但是我觉得 accept 也是这样的。(我感觉 accept 这句话有问题)

最后结果就是 I/O 多路复用搭配 non-blocking 。至于你说的数据从内核缓冲区 copy 到用户缓冲区,这个我不太了解。
2016-03-25 13:12:51 +08:00
回复了 ubear1991 创建的主题 问与答 关于套接字的疑问
@ubear1991 阻塞简单来说就是 “ sleep 的技术术语”,我发给你的第一个链接里面有,第三个链接里面会把它具体化容易理解。
2016-03-25 11:04:51 +08:00
回复了 ubear1991 创建的主题 问与答 关于套接字的疑问
我查了下资料:
服务端 socket 流程是这样的:
先创建 socket()---bind()---listen()--循环 accept()
在 accept 的时候可能会产生阻塞(blocking),,所以又有一种叫做非阻塞(non-blocking),就是在等待客户端访问的时候, CPU 处理其他的事情,这种情况下如果要返回处理客户端,继续要不断的轮询,会浪费 CPU 的时间。然后又有一种新的方法比如(select 、 polll)可以同时监控多个 socket 进行轮询,比如哪些 socket 可以读取,哪些可以写入,这种是最基本的多路复用。

以上可能有错误,我查到的是这么个情况。参考资料:

https://translate.googleusercontent.com/translate_c?depth=1&hl=zh-CN&prev=search&rurl=translate.google.com.sg&sl=zh-TW&u=http://beej-zhtw.netdpi.net/07-advanced-technology/7-2-select&usg=ALkJrhg0zwDET71E2ri1ObOL_Xb3et8b8w

http://www.keakon.net/2011/09/28/%E5%85%B3%E4%BA%8Esocket%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%9D%E6%AD%A5%E7%A0%94%E7%A9%B6

http://www.cnblogs.com/Anker/p/3254269.html
2016-03-24 13:22:56 +08:00
回复了 mewkeisa 创建的主题 Python 真正从 0 开始学 Python 的感觉
@mhycy 我是这样理解的(以我的经验): 拿这个学 Python 的做例子,是要先学计算机基本原理,(稍等下,我本来是想说学习的人可能会困到计算机基本原理出不来,然后又困到 C 里面出不来),但是我突然想到每个人是不一样的,我的方法不一定对。最简单的指导原则就是按照普遍的教材来学习,然后再自己摸索。你说的也挺对的,我是这样子来的,直接学,遇到什么问题就去查什么问题,中间不能找跟这个我问题无关的资料,最后折回来。以前学汇编的时候有个原则叫知识屏蔽,或者前几天我看了 phithon 的博客。(扯远了,不扯了)
2016-03-24 11:58:02 +08:00
回复了 mewkeisa 创建的主题 Python 真正从 0 开始学 Python 的感觉
先找本书熟悉下基本语法,然后现在你知道这个简单方法怎么用了,用它做一个东西耍耍。楼上说先学计算机原理再学 C ,我实在无力吐槽了。
2016-03-21 08:21:02 +08:00
回复了 imxieke 创建的主题 Linux 请问 在 VMware 最新版跑 Kali Linux 特别卡 怎么办?
要不然试试 docker ,我没用过,给个建议。
整个楼道两侧墙壁全泛水,阴森森的,走路都是哒哒哒,洗的衣服一周都没干。
2016-03-17 10:20:45 +08:00
回复了 yjxjn 创建的主题 程序员 人生的十字路口
同 14 年唉,不要想着哪个挣钱去做哪个,就像楼上说的 follow your heart ,如果不知道方向先给自己找一个。
2016-03-11 10:52:58 +08:00
回复了 toono 创建的主题 程序员 各位程序猿养狗还是养猫?
养狗的可以看《狗语者》
2016-03-08 14:50:19 +08:00
回复了 cc7756789 创建的主题 Python BaseHTTPServer 中的一些问题
@knightdf 我就知道有地方错了。。。
2016-03-08 14:25:47 +08:00
回复了 cc7756789 创建的主题 Python BaseHTTPServer 中的一些问题
HTTP 1.1 协议中对 url 的长度是不受限制的,但是实际上对于服务端和浏览器来说一般是 4K 或者 8K
8K=8192 字节=65536Byte
self.raw_requestline = self.rfile.readline(65537)
if len(self.raw_requestline) > 65536:
self.requestline = ''
self.request_version = ''
self.command = ''
self.send_error(414)
return
下面 send_error(414),可以在最下面找到 414 表示的是 414: ('Request-URI Too Long', 'URI is too long.'),
然后我百度了下: URL,URN 是 URI 的子集
另外 readlines(size)表示这个: size -- This is the number of bytes to be read from the file
好像很接近 65537 的样子。。。。

上面讲的可能有错误,仅供参考。
2016-03-08 12:57:02 +08:00
回复了 cjyang1128 创建的主题 问与答 哪里有没有后门的菜刀。。
不是应该发到 zone 里么? altman ,还有一堆 java 菜刀, Python 菜刀。。
2016-03-04 13:11:06 +08:00
回复了 common07 创建的主题 DotA 西恩刀塔之殇——“魔都事变”
容我看看老年色情男主播的视频压压惊。
2016-03-02 16:58:44 +08:00
回复了 woai110120130 创建的主题 问与答 现在好多 it 公司喜欢养猫 这有什么渊源?
狗好黏人,我天天回家喷 84 擦狗屎,还把排插的电线给咬了,吃了我 7 个蛋黄派。
2016-03-01 11:01:02 +08:00
回复了 xiaoyu9527 创建的主题 问与答 现在还有 FREE DOOR 之类的免费软件么?
@bigtan 我没用过 lantern ,查了下现在的速度还不错,软件比原来好用很多。
2016-03-01 10:22:21 +08:00
回复了 xiaoyu9527 创建的主题 问与答 现在还有 FREE DOOR 之类的免费软件么?
lantern
1 ... 10  11  12  13  14  15  16  17  18  19 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2773 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 06:35 · PVG 14:35 · LAX 22:35 · JFK 01:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.