(Python) 我该怎么做才能停止收到此错误? [WinError 10013]试图以访问权限禁止的方式访问套接字 编辑:我修好了对于服务器和客户端,我将 SERVER 设置为 'localhost',将 PORT 设置为 9999

问题描述

我正在尝试制作一个 Python 套接字客户端/服务器聊天应用程序,但似乎无法解决 this error。我已经使用 netstat -a|findstr 7000 来确保端口可用,and it was. 除了 Windows 安全之外,我没有运行任何防病毒软件。我在关闭计算机上的所有防火墙后也尝试过它 - 没有弄乱路由器中的防火墙设置。我以管理员身份在 Anaconda Powershell Prompt 中运行这两个文件。 任何帮助表示赞赏。

server.py 的代码:

from socket import AF_INET,socket,SOCK_STREAM
import threading

BUFSIZ = 1024
FORMAT = 'utf-8'             
SERVER = '192.168.1.10'
ADDR = (SERVER,7000)                                           

server = socket(AF_INET,SOCK_STREAM)
server.bind(ADDR)
sockets = {server}  
clients = {}        

def accept_incoming_connections(): 
    while True:
        client,client_addr = server.accept()                
        print ("%s:%s has connected." % client_addr)            
        client.send(bytes("Enter your name and press enter."),FORMAT) 
        sockets[client] = client_addr                          
       # client_thread = threading.Thread(target=handle_client,args=(client,)).start()

def handle_client(client):   
    client_name = client.recv(BUFSIZ).decode(FORMAT)            
    client.send(bytes("Type .exit when you're ready to quit.",FORMAT))
    msg = "%s has entered the chat." % client_name
    broadcast(bytes(msg,FORMAT))                               
    clients[client] = client_name

    while True:                                         
        msg = client.recv(BUFSIZ)                       
        if msg == bytes(".exit",FORMAT):               
            client.send(bytes(".exit",FORMAT))         
            client.close()
            del clients[client]
            broadcast(bytes("%s has left the chat." % client_name,FORMAT))
            break
        else:                                           
            broadcast(msg,client_name)

def broadcast(msg,name=""):                    
    for client in clients:                      
        client.send(bytes(name,FORMAT) + msg)

if __name__ == "__main__":
    server.listen()
    print("Awaiting connection.")
    accept_incoming_connections() 

client.py 的代码:

import socket
import threading

BUFSIZ = 1024
FORMAT = 'utf-8'
SERVER = '192.168.1.10'
ADDR = (SERVER,7000) 

client_sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client_sock.connect(ADDR)

def receive():
    msg = client_sock.recv(BUFSIZ).decode(FORMAT)
    print(msg)

def send():
    msg = input('Enter msg: ')
    msg.encode(FORMAT)
    client_sock.send(msg)
    if msg == ".exit":
        client_sock.close()

receive_thread = Thread(target=receive)
receive_thread.start()

编辑:我修好了。对于服务器和客户端,我将 SERVER 设置为 'localhost',将 PORT 设置为 9999。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)