想请教一下找个语法是什么意思

来源:2-3 网络套接字与通信过程

代码好简单

2020-06-07 10:24

http://img.mukewang.com/5edc4f560001af5e09510537.jpg就是c后面一个,符号这样的变量我怎么没见过,如果我不放逗号是不是就没发运行的?是不是右边是s.所以获取了socket这个库,所以我鼠标移到c上也意思是socket

写回答 关注

2回答

  • 咚咚呛
    2020-06-09 13:22:35

    楼上非常不错的回答,细致,清晰,点赞。

  • TEMPLATES
    2020-06-09 12:38:42

    简单的说一下这两个参数, c(client)其实是客户端的套接字对象, addr(address)连接的地址, 其实是函数返回了两个参数. 

    我追踪了一下源码其中提供的的介绍: 等待传入连接。返回一个新的套接字文件描述符 表示连接和客户端地址。对应IP套接字,地址信息是一对(hostaddr,port). 

    http://img1.mukewang.com/5edf0fb0000147e709360329.jpg

    那么如果逗号去掉, 运不运行呢?答案是可以运行的, 去掉逗号后是这样的吧

    caddr = s.accept()
    print(caddr)

    我们来看一下结果: (<socket.socket fd=596, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8888), raddr=('127.0.0.1', 63169)>, ('127.0.0.1', 63169))

    (<socket.socket fd=596, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8888), raddr=('127.0.0.1', 63169)>, ('127.0.0.1', 63169))

    这是一个二维元组, 我们可以通过索引取到相应的值, 也是可以达到同样效果的

    caddr = s.accept()
    print(caddr[0])
    print(caddr[1])
    print('----------------------------------')
    print(caddr[1][0])
    print(caddr[1][1])

    执行结果:

    http://img1.mukewang.com/5edf11b90001000213050114.jpg

【计算机网络篇】从0到1 实现HTTP服务器开发

快速&系统 在实践中掌握计算机网络编程基础

12138 学习 · 42 问题

查看课程

相似问题