2014-03-19 2 views
1

이상으로 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 통해 보낼 때 발생합니다. >참조 -

+1

파일에 바이트 배열 (보내고받은)을 모두 쓰고 차이를 비교합니다. – Hrqls

+0

하나의'SendData' 호출은 하나의'GetData' 호출을 통해 안정적으로 수신 할 수 없습니다. 이것은 "패킷 오류"입니다. 사용자 정의 "패킷"으로 데이터를 전송하지 않지만 스트림 조각을 보내고 길이가 같지 않은 스트림 조각을 수신합니다 (데이터 도착 이벤트 당 1 바이트 정도 될 수 있음). TCP는 데이터 그램 프로토콜이 아닙니다. – Bob77

답변

관련 문제