나는 간단한 클라이언트와 파이썬에서 서버 코딩, 나는 이해하고 클라이언트를 실행하는 데 아무런 문제가 없다 그러나 나는 문제의 이해와 서버를 실행 있습니다. 들어오는 연결을 수락하기위한 두 가지 변수는 무엇입니까?
이
잘 작동 클라이언트 내 코드입니다 : 지금 여기 당신이 알 내 서버 여기import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 12345
sock.connect((host, port))
data = sock.recv(1024)
sock.close()
print("Message: ", data)
print("Finished successfully")
하고 그 sock.accept()이 두 변수가 앞면 연결 & addr 그리고 그게 내가 이해하려고하는 것입니까? 왜이 두 변수가 있어야합니까? 왜 내가 가질 수 없어? 같은 기능으로 할당 된 두 개의 변수가 필요한 이유는 무엇입니까? 이 코드를 실행하면 잘 작동 :
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 12345
sock.bind((host, port))
sock.listen(5)
while True:
print("Waiting for a connection...")
connection, addr = sock.accept()
#print("Incomming connection from", addr)
msg = b'This is a test.'
connection.send(msg)
connection.close()
break
print("Finished successfully")
을하지만 나는 하나 개의 변수를 제거하면, 이제 요지을 가정 해 봅시다 :
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 12345
sock.bind((host, port))
sock.listen(5)
while True:
print("Waiting for a connection...")
connection = sock.accept()
#print("Incomming connection from", addr)
msg = b'This is a test.'
connection.send(msg)
connection.close()
break
print("Finished successfully")
그리고 나는이 코드를 실행, 나는 오류가? 왜이 오류가 발생합니까?
Traceback (most recent call last):
File "server.py", line 16, in <module>
connection.send(msg)
AttributeError: 'tuple' object has no attribute 'send'
저는이 논리를 이해하지 못합니까? 이 두 변수에는 동일한 기능이 할당되어 있으며 동일한 기능을 수행하는 두 개의 동일한 변수가 있어야하는 이유가 표시되지 않습니다.
asign이 개 변수 내가 아니었다 2 개 요소 –
을 튜플 풀고 바로 파이썬 방법입니다, 당신은 당신이
socket.accept()
이 그렇지 않으면 당신은 튜플 객체를받을 사용할 때마다 값을 압축을 풀 필요가 의미 정말 그 사실을 알고, 나는 아직 파이썬을 배우고 있고 분명히 아직 모든 개념을 이해하지 못했다 :)) – CrypticX