【问题标题】:python socket why cant i use every port?python socket 为什么我不能使用每个端口?
【发布时间】:2018-04-03 11:17:34
【问题描述】:

所以我一直在处理我的聊天并且我完成了它(使用套接字模块)。 这是我的代码:

客户

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 左右时,我收到错误“权限被拒绝”。没什么大不了的,但我很感兴趣为什么会发生这种情况,有人可以向我解释一下吗?谢谢

【问题讨论】:

  • 查看this 对类似问题的回答。
  • 只有root可以使用1024以下的端口

标签: python sockets port ports


【解决方案1】:

在许多系统上,只有 root 可以绑定到低于 1024 的端口。

【讨论】:

    猜你喜欢
    • 2017-04-10
    • 2017-11-19
    • 2013-10-18
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多