SOL_SOCKET和SOL_REUSE

时间:2018-04-30 09:02:47

标签: python

我试图为p2p通信设置套接字。我发现了这段代码,但我很难理解代码。什么是SOL_SOCKET,还有SOL_REUSE?

有人可以帮我查看这段代码吗?

#!/usr/bin/env python
import socket, sys

self_broken = False

def wait(c):
    print('waiting...')
    c.send('waiting')
    broken = True
    while broken:
        status = c.recv(1024)
        if status == 'working':
            print(status)
            if self_broken:
                c.send('broken')
            else:
                c.send('starting')
                broken = False
    c.close()

def main():
    s = socket.socket()
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    host, port = socket.gethostname(), 10001
    s.bind((host, port))
    s.listen(1)
    while True:
        c, addr = s.accept()
        status = c.recv(1024)
        print(addr[0] + ':' + str(addr[1]) + ' > ' + status)
        if status == 'broken':
            wait(c)
        else:
            print(status)
        c.close()
    s.close()

main()

我找到了这个解释,但它适用于C,它是否也适用于Python? This is for C, is it the same for Python?

编辑: 任何人都可以告诉med什么是' c'呢?它在等待(c),c.send和c.close。

1 个答案:

答案 0 :(得分:0)

SOL_SOCKET -定义协议级别(在此为套接字级别)。由整数常量SOL_SOCKET表示。