最近在整网络这块的东西,恰好弄到 socket 了,感觉理解的好笼统,一点那都不专业咋办?各位 V 友有没有对应文章推荐呢?
1
julyclyde 2016-10-20 15:52:06 +08:00
你问的是 socket
还是 python 里的 socket 还是 python ? |
3
BOYPT 2016-10-20 15:54:11 +08:00 1
python 易用,但是不代表你不用学操作系统的东西,找本网络编程补补课吧。
|
5
ansheng OP @julyclyde 那我是否可以理解他其实就在服务器上开了一扇门,然后客户端通过找到这扇门进行通讯,建立的连接是通过 tcp/udp 协力的,这其中是否牵扯到了 http 呢?
|
6
introom 2016-10-20 15:59:17 +08:00 6
|
8
scream7 2016-10-20 16:02:40 +08:00
拿 python 学 socket 的话强烈推荐使用 ipython ,甚至可以帮你把 tcp 的各个状态理解清楚
|
10
9hills 2016-10-20 16:07:23 +08:00 1
Python 的 Socket 和 C 的 Socket 没啥区别,简单包了一层
建议先学习一本书叫《 Unix 高级环境编程》中的 socket 通信部分章节,这本书是所有*NIX 环境下,不管你用什么语言,都必须先学习的一本书。。。 |
11
zhangbohun 2016-10-20 16:15:42 +08:00 via Android
楼主需要补充一下计算机网络相关的姿势
|
12
lfzyx 2016-10-20 16:28:08 +08:00
python 中的 socket 只是用 python 实现的而已,跟其他语言的 socket 工作原理并没有什么不同
|
13
cxl008 2016-10-20 16:40:09 +08:00
这和 python 有什么关系 ,是你自己不理解 socket 。。。
|
14
zhicheng 2016-10-20 16:42:36 +08:00 2
不知道你说的是 socket 还是网络编程,下面两篇网络编程的文章推荐给你看一下。
用 Python 理解服务器模型(上) https://www.textarea.com/zhicheng/yong-python-lijie-fuwuqi-moxing-shang-566/ 用 Python 理解服务器模型(下) https://www.textarea.com/zhicheng/yong-python-lijie-fuwuqi-moxing-xia-596/ |
17
meinqy 2016-10-20 16:51:57 +08:00
你可以这样理解: Python 通过调用系统底层 叫 socket 的 api 实现 和 客户机 的 tcp/udp 通信
|
19
ansheng OP @meinqy socket 其实就是对 tcp/ip 、 tcp/udp 的一个封装,也就是 python 提供了一个的网络打交道的模块把。
|
20
imn1 2016-10-20 17:04:24 +08:00
根据 5L 的回复,你先需要学习了解 BSD socket 原理, python 跟它是基本一样的,连 error no 都一样
注意同一版的 python ,在 linux 和 windows 上 socket 封装是不同的,返回状态和 error no 是跟随系统,如上面所说只是打包 |
21
GeekGao 2016-10-20 17:21:39 +08:00
可以看《 Python 网络编程》 这本书
|
23
meinqy 2016-10-20 17:40:09 +08:00
@ansheng ip 协议网络层的, tcp/udp 协议是传输层的 不是一个层级的东西。 如果你只是想大概明白 socket 基本就我说的意思哦~~
|
30
ibigbug 2016-10-21 00:52:13 +08:00
两个关键字:三次握手, CLOSE_WAIT 。可以了解各大概了。
这玩意儿很难一下子理解透彻,遇到问题对着状态图多看,自己写个 tcp echo client/server 多试。 |
31
Allianzcortex 2016-10-21 09:12:39 +08:00
直接动手就大块头的书太过分了。。如果是要快速理解的话推荐看看 tutorialspoint 家的教程 https://www.tutorialspoint.com/unix_sockets/network_addresses.htm ,如果不做服务器端开发基本不会用到的, Web 框架里面都封装好了
|