Q&A

  • TCP/IP에서 Receivebuffer로 받은 값을 Record 변수에 저장하는 법?
박서규 wrote:

> 찾는이 wrote:



> 안녕하세요...

> 여러 방법이 있을것 같습니다.

> 버퍼의 내용을 임의적으로 move시키는 방법이 있구요..

> 버퍼의 내용을 레코드의 크기와 똑같은 사이지의 버퍼에 넣었다가

> 형변환을 시키셔도 됩니다.

> 저의 경우는 후자를 쓰는데 잘됩니다.



-----------------[질문]------------------

type

Packet = Record

Data : Array[1..3] of double;

end;



var

P : Packet;

S : TMemoryStream;

begin

S:=TMemoryStream.Create;

P.Data[1]:=10.000;

P.Data[2]:=20.000;

P.Data[3]:=30.000;

S.Write(P,Sizeof(P));

ServerSocket.Socket.Sendstream(P);

end;



----받는쪽----

type

DataReceive = Record

Re : Array[1..3] of double;

end;

var

P : DataReceive;

Mem : TMemoryStream;

begin

ClientSocket.Socket.ReceiveBuffer( )---이부분부터 어떻게 해야할지 모르겟네여

end;



이 부분에 대해서 저는 위에서 보낸 레코드를 다시 이부분에서 다시 변수로 정의하고 싶거든여..예제로 부탁드립니다.

레코드로 받은것을

P.Re[1]:=10.000;

P.Re[2]:=20.000;

P.Re[3]:=30.000;

이런 방법으로 다시 저장하고 싶어여?

예제로 설명 부탁드립니다. 바쁘신데 번거롭게 해드려서 죄송해여...



1  COMMENTS
  • Profile
    최용일 2000.08.31 10:01
    안녕하세요. 델파이세상(http://www.freechal.com/delphiworld)의 최용일입니다.



    똑같이 할려면 그냥 대입해주시면 되는데요.



    ClientSocket.Socket.ReceiveBuffer(P, SizeOf(P));



    ^^ 항상 즐코하세요.



    찾는이 wrote:

    > 박서규 wrote:

    > > 찾는이 wrote:

    >

    > > 안녕하세요...

    > > 여러 방법이 있을것 같습니다.

    > > 버퍼의 내용을 임의적으로 move시키는 방법이 있구요..

    > > 버퍼의 내용을 레코드의 크기와 똑같은 사이지의 버퍼에 넣었다가

    > > 형변환을 시키셔도 됩니다.

    > > 저의 경우는 후자를 쓰는데 잘됩니다.

    >

    > -----------------[질문]------------------

    > type

    > Packet = Record

    > Data : Array[1..3] of double;

    > end;

    >

    > var

    > P : Packet;

    > S : TMemoryStream;

    > begin

    > S:=TMemoryStream.Create;

    > P.Data[1]:=10.000;

    > P.Data[2]:=20.000;

    > P.Data[3]:=30.000;

    > S.Write(P,Sizeof(P));

    > ServerSocket.Socket.Sendstream(P);

    > end;

    >

    > ----받는쪽----

    > type

    > DataReceive = Record

    > Re : Array[1..3] of double;

    > end;

    > var

    > P : DataReceive;

    > Mem : TMemoryStream;

    > begin

    > ClientSocket.Socket.ReceiveBuffer( )---이부분부터 어떻게 해야할지 모르겟네여

    > end;

    >

    > 이 부분에 대해서 저는 위에서 보낸 레코드를 다시 이부분에서 다시 변수로 정의하고 싶거든여..예제로 부탁드립니다.

    > 레코드로 받은것을

    > P.Re[1]:=10.000;

    > P.Re[2]:=20.000;

    > P.Re[3]:=30.000;

    > 이런 방법으로 다시 저장하고 싶어여?

    > 예제로 설명 부탁드립니다. 바쁘신데 번거롭게 해드려서 죄송해여...

    >