问题标签 [python-sockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6008 浏览

python - 在 python 中广播套接字服务器

我正在构建一个多人游戏,所以一旦服务器启动,我想连续广播服务器名称,以便客户端可以知道有一些服务器正在运行。我不想提供 IP 地址和端口号来连接服务器。有人可以帮我广播服务器名称。

  • 它是一个应用程序而不是一个网络应用程序。
0 投票
1 回答
5946 浏览

python - 为什么我不能在 Python 中接收 UDP 数据包?

我正在尝试通过 UDP 联系 A/V 设备。我向本地广播 192.168.0.255 发送了一个数据包,它以有关设备的信息进行响应。我可以验证它是否适用于 Wireshark。但是,我从来没有在 Python 中得到响应,它就在那里:

我将它从 64000(随机端口)发送到 63630 端口,因此在发送它的 64000 端口绑定和接收,然后返回,应该可以工作,对吗?我错过了一步吗?

0 投票
1 回答
392 浏览

sockets - 套接字在python中的使用

我想在两台机器之间创建一个聊天程序。我正在使用 IP 地址为 192.168.0.5 的机器,我可以成功地向机器192.168.0.2 发送一条消息,然后从机器二向机器一发送一条消息作为响应。

但是,我在任何一台机器的第二次发送尝试中遇到了一个问题,(注意到在第二次发送之前我等待初始发送的响应)声称 IP 地址已在使用中或连接被拒绝,这怎么可能更改以便可以发送定义数量的选择?

我很欣赏以下代码不是发送和接收多条消息的最有效方式,这将是 for 循环的一些描述。例如for sendAndRecieve in range(0,5).

两台机器使用通过交换机的以太网电缆连接,代码同时运行。

机器 1 代码:

机器2代码:

0 投票
2 回答
3435 浏览

python - 绑定到 0.0.0.0 时查找源 IP 地址

将 UDP 套接字绑定到("", 1234)or("0.0.0.0", 1234)时,是否可以找出它实际发送的 IP 地址?

正如您在下面的代码中看到的那样,getsockname只告诉我我绑定的内容。但是当我发送一个数据包时,我可以看到 IP 地址在我的例子中是10.0.0.2.

我是否必须通过查看我的网络接口自己推断此地址?如果是这样,那很好,但是有没有一种可靠的方法呢?

我试过做

但这似乎不是很可靠(在我期望的情况下10.0.0.2,我得到了127.0.1.1)。

我意识到通过绑定到0.0.0.0,我绑定到所有本地网络接口。这是否意味着当我尝试发送某些内容时,我的源 IP 地址将由路由表确定?如果是这样,我仍然可以从 Python 以可靠的方式获取该地址吗?

0 投票
1 回答
466 浏览

python - 如何使用套接字成员创建一个类

我创建了以下类,我想在其中包含一个套接字成员,然后想使用成员函数来连接、关闭、发送和接收。

我成功运行了 .Connect 函数,但之后当我尝试发送函数时,它说“str”对象没有写入成员。

关于如何完成这项工作的任何想法?

0 投票
1 回答
979 浏览

python - Qt 写入 Linux 机器上的 UDP Socket 和 Windows 使用 Python 从 Socket 读取

=========== 更新:===========

我现在使用广播 ip 10.6.0.3 和更高的端口 57890。我可以在 Windows 网络监视器中看到流量,但仍然无法让 Python 读取它。

===============================

我有一台 linux 机器使用 Qt 和 QUDPSocket 向 IP 地址 10.6.0.2 上的 UDP 套接字写入“hello”消息。我还有一台 Windows 机器,我想使用 Python 读取“你好”消息。从我的 Qt 代码中,我可以看到正在写入数据,但是,Windows 上的 Python 程序永远处于“等待数据”状态。windows机器确实可以ping通10.6.0.2。我究竟做错了什么?

测试顺序:

Qt 输出:

Qt代码:

蟒蛇程序:

0 投票
2 回答
77 浏览

python - 在 Python URLLIB2 中读取大量内容长度时套接字被阻止

我正在使用 Python 来使用返回JSON响应的 Web 服务。当响应的内容长度不是那么大时,一切都很顺利。当响应的内容长度非常大时,问题似乎就出现了。

这是我的代码片段,非常简单:

其中request是格式正确的urllib2.Request

如果我打印response.info()它会给我:

我的脚本永远卡在response.read()中,就好像套接字被阻塞了一样。

我一直在寻找解决方案,还没有找到。

我真的很感激帮助。

0 投票
1 回答
503 浏览

python - Python Socket - 在单独的函数中使用客户端

我正在开发一个基本的服务器登录系统,它几乎可以用于任何事情,问题是当你定义客户端时,例如:

所以你可以很容易地做到这一点,但我想做的是这样的:

如您所见,我想在另一个函数中使用客户端,但随后出现此错误:

这只是我想要做的一个粗略的想法,所以无论如何我可以在我想要的功能中使用套接字客户端吗?如果有人能找到我的解决方案,我将非常感激!如果您需要更多代码来更好地了解我想要的内容,请在评论中提出,我会添加它。我已经到处寻找类似的东西,但遗憾的是我没有找到任何东西。

提前致谢!

0 投票
1 回答
912 浏览

python - 来回 unix 域套接字锁

我正在编写两个程序,一个在 c++ 中,另一个在 Python 中,以使用 unix 域套接字相互通信。我想要做的是让 c++ 代码向 python 代码发送一个数字,然后将另一个数字发送回 c++。这种情况一直持续到 C++ 代码用完要发送的数字并且执行停止。以下是我的代码。我似乎无法在循环的第一次迭代之后运行它们。

我先运行 Python:
python code.py /tmp/1 /tmp/2

然后我运行 c++ 代码:
./code /tmp/1 /tmp/2

这是输出:

C++ 输出:

发送 0
监听
连接成功
接收 5
发送 1
监听



蟒蛇输出:

收听 ...
收到 (0,)
>5
发送 5
收听 ...

C++ 代码:

蟒蛇代码:

我在这种方法中做错了什么?我需要使用线程吗?

谢谢

0 投票
1 回答
21 浏览

python - 为什么 tcp_server 程序收到数据后必须重新启动它?

我在 python 中使用了一个简单的 tcp_server。这是代码: -

我的问题是一旦它接收到数据,连接就会断开,我必须重新运行 tcp_server 程序来启动连接。我如何让它永远听下去。