Questions tagged «sockets»

双向进程间通信流的端点。这通常是指通过网络连接的过程流,但绝不限于此。不要与WebSocket(协议)或其他抽象(例如socket.io)混淆。

4
绑定多播(UDP)套接字是什么意思?
我在具有多个网络接口的主机之间使用多播UDP。我正在使用boost :: asio,并且被接收者必须进行的2个操作所迷惑:绑定,然后加入组。 当您对加入的每个多播组进行设置时,为什么在绑定期间需要指定接口的本地地址? 姊妹问题涉及多播端口:由于在发送期间,您发送到多播地址和端口,为什么在订阅多播组期间仅指定地址,而不指定端口-在对的混乱调用中指定的端口绑定。 注意:“ join-group”是over的包装setsockopt(IP_ADD_MEMBERSHIP),如所记录的那样,可以在同一套接字上多次调用该包装以订阅不同的组(通过不同的网络?)。因此,每次我订阅一个组时,放弃绑定调用并指定端口是很有意义的。 从我看来,始终绑定到“ 0.0.0.0”并在加入组时指定接口地址,效果很好。困惑。

3
套接字与套接字通道
我试图理解SocketChannels和NIO。我知道如何使用常规套接字,以及如何制作一个简单的每客户端线程服务器(使用常规阻塞套接字)。 所以我的问题是: 什么是SocketChannel? 使用SocketChannel而不是Socket时,我得到的额外收益是什么。 通道和缓冲区之间是什么关系? 什么是选择器? 文档中的第一句话是A selectable channel for stream-oriented connecting sockets.。这意味着什么? 我也阅读了本文档,但是不知何故……


5
如何解决Alpine docker容器内Flask应用程序的Gunicorn执行程序上引发的``OSError:libc not found''问题
我正在基于Miguel Grinberg的大型教程的Microblog应用程序开发Flask应用程序。代码位于此处:https : //github.com/dnilasor/quickgig。我有一个带有链接的MySQL 5.7容器的可运行docker实现。今天,我使用Flask-Admin模块添加了一个Admin View功能。它通过“ flask run”在Flask服务器上本地服务(OSX)上精美地工作,但是当我构建并运行新的docker镜像(基于python:3.8-alpine)时,它在启动时崩溃并出现OSError: libc not found错误,其代码似乎指示未知的图书馆 在我看来,Gunicorn无法在我添加内容后投放该应用程序。我和我的同学很沮丧! 我最初使用python:3.6-alpine基本图像得到了错误,因此尝试使用3.7和3.8无济于事。我还注意到,一旦在requirements.txt中指定了版本号,便会多余地添加PyMySQL。并再次在dockerfile中明确显示,没有任何规范。删除了requirements.txt条目。还尝试增加Flask-Admin版本号。上和下。还尝试清理数据库迁移,因为我已经看到多个迁移文件导致容器无法启动(诚然,这是在使用SQLite时)。现在只有一个迁移文件,并且基于堆栈跟踪,看起来flask db upgrade工作正常。 我尚未尝试的一件事是不同的基本映像(最少的基本映像?),可以尽快尝试并更新它。但是这个问题对我来说是如此神秘,以至于我认为是时候问其他人是否看过它了:) 我确实发现了这个似乎可能相关的套接字错误,但是应该在python 3.8中已完全修复。 此外FYI我跟着一些建议这里的圆形进口和进口我的管理控制器功能里面create_app。 Dockerfile: FROM python:3.8-alpine RUN adduser -D quickgig WORKDIR /home/quickgig COPY requirements.txt requirements.txt RUN python -m venv venv RUN venv/bin/pip install -r requirements.txt RUN venv/bin/pip install gunicorn pymysql COPY app app COPY …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.