2017-01-07 1 views
0

파이썬을 사용하여 TCP/IP 포트에서 데이터를 읽으려고합니다. 아래의 TCPView 스크린 샷에서 볼 수 있듯이 데이터가 응용 프로그램에서 성공적으로 흐르고 있지만 아래 코드에서 아무것도 얻지 못합니다 (첫 번째 인쇄 출력을 얻은 다음 커서가 깜박입니다).Python - Windows의 TCP/IP 포트에서 데이터를 읽으려고하는데 할당이 잘못되었습니다.

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

를 이러한 데이터가 아닌 로컬 포트 ​​61,893 이상, 로컬 포트 ​​60840로 출력하는 것을 나타내고 TCPView에 의해 표시됩니다. TCPView에서 명명 된 로컬 포트를 청취하도록 스크립트를 변경해도 아무 효과가 없습니다.

+0

친애하는 테리 : 그래서가 정중 생각까지 - 투표 및/또는 올바른 것으로 보인다 이와 같은 답변을 받아 들일 것에. –

답변

2

스트림 (TCP)을 원할 때 데이터 그램 (UDP) 소켓을 사용 중입니다. 대신이의 은 :

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

이 있어야한다 :

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

감사합니다. rtfm 질문에 대해 유감입니다. – woodbine

+0

문제 없습니다. 도와 줄 수있어서 기뻐. –

관련 문제