這個accept()
方法返回一個新的套接字和地址的元組,但爲什麼我需要一個新的套接字,如果我已經有一個,那麼爲什麼不使用它?爲什麼和如何在python中使用socket.accept()?
import socket
sock = socket.socket()
sock.bind(('', 9090))
sock.listen(1)
conn, addr = sock.accept()
print 'connected:', addr
while True:
data = conn.recv(1024)
if not data:
break
conn.send(data.upper())
conn.close()
PS:當我編程在Java中的插座,我真的沒有這樣的接受的東西,我只需要每個客戶端一個插座,每個服務器都有一個,這是有道理的。
Java完全一樣。兩者都是標準Socket API的簡單包裝。 – chrylis
你應該閱讀一個很好的套接字教程。它會清除這個和其他許多事情。嘗試https://docs.python.org/3/howto/sockets.html –
查看[ServerSocket](https://docs.oracle.com/javase/8/docs/api/java/net/ServerSocket。 html)類。另請參見http://stackoverflow.com/questions/12454675/whats-the-return-value-of-socket-accept-in-python –