-1
네트워크 소켓에서 데이터를 가져 와서 특정 데이터 시퀀스를 찾는 데이터를 스캔하는 Python 프로그램을 작성하고 싶습니다.파이썬 네트워크 소켓에서 바이트를 읽음
'네트워크에서 가져 오기'비트가 정상적으로 작동하고 검색된 데이터를 아무 문제없이 파일에 덤프 할 수 있지만 파이썬이 실제로 한 번에 한 바이트 씩 데이터를 스캔하도록하는 것은 효과가 없습니다.
'for byte'루프에서 일을 시도하고 코드를 삽입 할 때마다 나는 아무 것도 일어나지 않습니다.
아래의 프로그램을 실행할 때, byte.out의 크기는 보통 buf.out의 크기의 두 배가되는데, 이는 잘못 된 부분을 가리키는 주요 증상이라고 생각합니다. 내부 루프가 실제로 바이트 단위로 데이터를 처리하는 경우 두 출력 파일이 동일한 크기가 될 것으로 예상됩니다.
내 생각에 "chr (buf)의 바이트"에 대한 잘못된 점이 있지만 실제로 여기에 무엇을 넣어야할지 모르겠다.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
fh1 = open("buf.out", 'wb')
fh2 = open("byte.out", 'wb')
s.connect(("obscured.url", 9999))
s.send('GET /xx HTTP/1.1\nHost obscured.url:9999\n\n')
for i in range(10):
buf = s.recv(1024)
for byte in chr(buf):
print >>fh2, byte
print >>fh1, buf
s.close
'chr (buf)'대신'str (buf)'를 사용해보십시오. – akaIDIOT
아니면'for byte in buf'입니까? 모든 바이트에 대해 개행 문자를 인쇄하기 때문에 크기가 두 배가됩니까? -'print >> fh2, byte,'를 원하셨습니까? – RichieHindle
'urllib' 또는'urllib2'를 사용하지 않는 특별한 이유가 있습니까? – glglgl