Q&A

  • Socket통신에서 이상한 현상발생...어찌 해결하나?
클라이언트 부분...

procedure TForm1.Button2Click(Sender: TObject);

var

nI: Integer;

nLen : Integer;

sTxData: String;

sTmp : String;

nTxData:Array of Byte;

cTmp: Char;

begin



sTxData := TrimLeft(edtTxData.Text);

nLen := Length(sTxData);

if nLen <= 0 then Exit;



SetLength(nTxData, nLen+12);





// STX

nTxData[0] := $02;

// Length

nTxData[1] := nLen;

// Sequence

nTxData[2] := 12;

// Source IP

nTxData[3] := 210;

nTxData[4] := 124;

nTxData[5] := 173;

nTxData[6] := 40;

// Destination IP

nTxData[7] := 210;

nTxData[8] := 124;

nTxData[9] := 173;

nTxData[10] := 40;

// Dump Data

for nI := 1 to nLen do

begin

cTmp := sTxData[nI];

nTxData[10+nI] := Ord(cTmp);

end;



// ETX

nTxData[10+nLen+1] := $03;



csktSocket.Socket.SendBuf(nTxData, Length(nTxData));





end;



서버쪽

procedure TfrmMain.ssktSocketClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

nLen : Integer;

anRxData : array of Byte;

begin

nLen := Socket.ReceiveLength;

if nLen <= 0 then Exit;

SetLength(anRxData, nLen);



Socket.ReceiveBuf(anRxData, nLen);



end;



이렇게 구현했는데...

클라이언트에서 서버쪽으로 데이타를 보내면...

서버쪽으로 이상한 데이타가 들어오는데...왜이러는 거지여?







0  COMMENTS