Python - 尝试从Windows上的TCP / IP端口读取数据,但是以某种方式分配是错误的

时间:2017-01-07 14:25:09

标签: 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中命名的本地端口无效。

1 个答案:

答案 0 :(得分:2)

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

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

你应该有这个:

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