代码好简单
2020-06-07 10:24
就是c后面一个,符号这样的变量我怎么没见过,如果我不放逗号是不是就没发运行的?是不是右边是s.所以获取了socket这个库,所以我鼠标移到c上也意思是socket
楼上非常不错的回答,细致,清晰,点赞。
简单的说一下这两个参数, c(client)其实是客户端的套接字对象, addr(address)连接的地址, 其实是函数返回了两个参数.
我追踪了一下源码其中提供的的介绍: 等待传入连接。返回一个新的套接字文件描述符 表示连接和客户端地址。对应IP套接字,地址信息是一对(hostaddr,port).
那么如果逗号去掉, 运不运行呢?答案是可以运行的, 去掉逗号后是这样的吧
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])
执行结果:
【计算机网络篇】从0到1 实现HTTP服务器开发
12138 学习 · 42 问题
相似问题