이상으로 propertybag
을 보내는 중 문제가 발생했습니다. propertybag
을 사용하여 이미지를 보내는 클라이언트/서버 응용 프로그램이 있습니다. propertybag
을 바이트 배열로 변환하고 winsock
이상으로 보내고 바이트 배열을 propertybag
으로 다시 변환하면 읽을 수 없습니다. 전송 된 데이터가 손상된 것 같습니다.winsock을 통해 propertybag를 보내시겠습니까?
클라이언트 (전송합니다 PropertyBag)
Dim pb As PropertyBag
Dim byt() As Byte
Set pb = New PropertyBag
pb.WriteProperty "picc", Image1.Picture
byt = pb.Contents
Winsock1.SendData byt
서버 (수신합니다 PropertyBag)
Dim byt() As Byte
Dim pb As PropertyBag
Set pb = New PropertyBag
Winsock1.GetData byt, vbByte
pb.Contents = byt
Image1.Picture = pb.ReadProperty("picc")
내가받은 오류 :
Run-time error '327':
Data value named 'picc' not found
,
winsock
없이 단일 프로그램에서 코드를 실행하려고하면 정상적으로 작동합니다. 문제가 바이트 배열을 winsock
통해 보낼 때 발생합니다. >참조 -
파일에 바이트 배열 (보내고받은)을 모두 쓰고 차이를 비교합니다. – Hrqls
하나의'SendData' 호출은 하나의'GetData' 호출을 통해 안정적으로 수신 할 수 없습니다. 이것은 "패킷 오류"입니다. 사용자 정의 "패킷"으로 데이터를 전송하지 않지만 스트림 조각을 보내고 길이가 같지 않은 스트림 조각을 수신합니다 (데이터 도착 이벤트 당 1 바이트 정도 될 수 있음). TCP는 데이터 그램 프로토콜이 아닙니다. – Bob77