Python - 试图从 Windows 上的 TCP/IP 端口读取数据,但分配错误

标签 python sockets tcp

我正在尝试使用 python 从 TCP/IP 端口读取数据。您可以从下面的 TCPView 屏幕截图中看到,数据已成功从应用程序流出,但我从下面的代码中什么也没得到(我得到第一个打印输出,然后只是一个闪烁的光标)。

TCPView screenshot

import socket

TCP_IP = "127.0.0.1"
TCP_PORT = 31003
BUFFER_SIZE = 1024

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((TCP_IP, TCP_PORT))
print("connected: ", s)
data = s.recv(BUFFER_SIZE)
s.close()
print("received data: ", data)

线

print("connected: ", s)

输出如下: enter image description here

这表示数据输出到本地端口60840,而不是TCPView指示的本地端口61893。更改脚本以监听 TCPView 中指定的本地端口无效。

最佳答案

当您需要流式 (TCP) 套接字时,您正在使用数据报 (UDP) 套接字。 而不是这个:

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

你应该有这个:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

关于Python - 试图从 Windows 上的 TCP/IP 端口读取数据,但分配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522439/

相关文章:

tcp - JGroups 集群节点端口,如果 port_range 设置为 0 或默认值

JQuery GET 请求 TCP 套接字服务器

python - Smalltalk 和 python 之间的区别?

Python - 在列表理解中使用 if、elif 和 else 及其各自的结果

sockets - 云功能被杀死。错误: quota exceeded (Socket connections : per 100 seconds).大火计划

javascript - 可以从 Web 浏览器加载 Socket.IO(express)服务器吗?

python - 在向标准输出显示消息时不要打扰用户输入

python - Python Paramiko 执行命令后如何保存结果?

c++ - 通过 Internet 发送 UDP 数据报

ruby - 我可以使用 Ruby 通过 TCP 发送对象吗?