0
저는 채팅 중이었습니다. 소켓 모듈을 사용하여 완료했습니다. 이 내 코드입니다 :python socket 왜 모든 포트를 사용할 수 없습니까?
클라이언트
import socket
print("Make sure to answer everything correctly or else it won't work\n")
my_ip = input('Your ip: ')
my_port = int(input('A random port number: '))
server_ip = input('Server ip: ')
server_port = int(input('Server port: '))
server = (server_ip, server_port)
def main():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((my_ip, my_port))
count = 0
name = input('Name: ')
while True:
if count == 0:
msg = input('--> ')
if msg.lower() == 'q':
break
end_msg = name + ': ' + msg
s.sendto(end_msg.encode('utf-8'), server)
count += 1
elif count == 1:
data, addr = s.recvfrom(1024)
print(data.decode('utf-8'))
msg = input('--> ')
if msg.lower() == 'q':
break
end_msg = name + ': ' + msg
s.sendto(end_msg.encode('utf-8'), server)
else:
pass
s.close()
main()
서버
import socket
host = input('Host/ip: ')
port = int(input('Port number: '))
users = []
def main():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
print('[!] Server started\n')
while True:
try:
data, addr = s.recvfrom(1024)
if addr not in users:
users.append(addr)
print('[*] Message from {} | {}'.format(addr, data.decode('utf-8')))
for user in users:
s.sendto(data, user)
except:
pass
s.close()
main()
당신은 내가 클라이언트 코드에서 입력을 가지고 있고 다른 포트를 사용하려했지만보다시피 나는 포트를 사용하는 경우 3 또는 그래서 나는 'Permission denied'오류가 발생합니다. 그것은 큰 문제가 아니지만, 왜 이런 일이 일어 났는지에 관심이있어, 누군가 나에게 설명 할 수 있을까? 많은 시스템에 감사
참조 비슷한 질문에 [이] (https://stackoverflow.com/a/20826189/238704) 대답보다 낮은 포트에 바인딩 할 수 있습니다. –
'root '만 1024 이하의 포트를 사용할 수 있습니다. –