搞惯了as,学起来python,还是有一点障碍的,就比如as里执行了while(true)那肯定是死循环,而python的socket建立却恰恰是这样写滴:
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(addr)
server.listen(999)
while True:
clientSock,addrs = server.accept()
print "client ip:" + str(addrs[0])
print "client port:" + str(addrs[1])
让我这个aser纳闷了许久,python为啥要不停的执行循环体?今天搞了个小实验,突然顿悟了。原来while True在socket连接中并不是在不停的循环,而是第一次执行后,socket.accept()就会处于监听模式,什么时候监听到有连接了,什么时候继续往下执行下一循环体。如果没连接,就不会执行下一循环。这下终于理解了。
还有不明白的同学可以这样实验一下
while True:
print 'running'
运行后者会发下屏幕会不停的输出'running'
还要提醒aser的是python中'isflash'+123是错误的。这就说明python在字符和数字相加时不会主动帮你进行强制类型转换,需要手动处理为'isflash'+str(123)