Luckyluck223 2024-09-04 08:52 采纳率: 63.6%
浏览 5

Flasksocketio 和socekt共同使用

我建立了一个flask服务器想使用socketIO和socket。
但是每次我运行文件的时候都会说port already been used。 但是flask是端口号5000. socket是端口号6000 。 我用了两个不同的进程去跑各自为什么会有这个报错? 当我单独paoflasksocketio或者单独跑socket都是可以的
给的报错是已经被使用但是当我去查找还有哪个进程在使用端口号6000就没有了 就只有这个 当我杀死这个进程我的服务器也停止运行了。 有哪位愿意提点一下吗 谢谢。

img

img

  • 写回答

2条回答 默认 最新

  • 吃不了席 2024-09-04 18:32
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要解决这个问题,首先确保在创建app实例时指定正确的端口(5000)。其次,你需要在启动socketio.run()之前等待其他进程完成。这样做的目的是防止多个线程同时试图监听相同的端口。

    这里是一个修改后的版本:

    import time
    from flask import Flask
    from flask_socketio import SocketIO
    
    app = Flask(__name__)
    socketio = SocketIO(app)
    
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    @socketio.on('my event')
    def handle_my_custom_event(message):
        print(f'Got message: {message}')
    
    if __name__ == '__main__':
        socketio.run(app, host='0.0.0.0', port=5000, debug=True)
    

    这段代码中,我们创建了一个Flask应用,并设置了默认的端口为5000。然后,我们在socketio.run()函数中添加了一个条件,以确保在启动socketio.run()之前已经有一个新的进程正在运行。这将确保不会发生冲突,因为第一个尝试将端口用于socketio.run()可能被阻塞,而第二个尝试则会成功。

    此外,我还添加了一个简单的事件处理程序来验证消息是否正确接收。

    请注意,如果你仍然遇到问题,可能是由于其他原因导致的,比如环境变量设置不正确、防火墙阻止等。在这种情况下,可能需要更详细的错误信息或调试步骤。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月4日

悬赏问题

  • ¥15 前台多人编辑时怎么让每个人保存刷新都互不干扰
  • ¥20 如何用Python删除单元格内连续出现的重复词?
  • ¥15 WangEditor嵌入到geeker-admin中,回车没有办法换行
  • ¥30 stm32f103c8t6制作万能红外遥控器
  • ¥15 有人会fastcrud写前端页面吗
  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题