Q&A

  • socket으로 클래스 필드 보내는 방법
안녕하세요...

음...혹시 이거 어케 하는지요...

sendtext로 서버에 있는 스트링형 클래스필드를 모두 보내고 싶은데요...

요 필드는 배열이거든요...그냥 sendtext해서 중간에 구분자를 넣어서

보내니까 변수의 범위를 벗어나는 바람에....쩝...

그래서 만약 요필드의 배열크기가 한 100개 정도 된다면...

요 100개를 하나씩 클라이언트로 보내면 클라이언트에선

하나씩 받는방법을 말씀드리는 겁니다...



머...보내는건 대충 요런식으로 했는데여...

이것도 맞나 모르겠습니다..



procedure TsrvFrm.GetUserList(var max: Integer; Socket: TCustomWinSocket);

var

i : Integer;

tmp : String;

begin

for i := 0 to max do begin //max는 배열의 크기

tmp := Personal.Userid[i]; //Personal 클래스의 Userid라는 필드

Socket.SendText('U'+tmp);

end;

end;



클라이언트에서 받는건 도무지.....쩝...

그럼 부탁드립니다....

4  COMMENTS
  • Profile
    구창민 1999.12.08 08:59
    이주흥 wrote:

    > 안녕하세요...

    > 음...혹시 이거 어케 하는지요...

    > sendtext로 서버에 있는 스트링형 클래스필드를 모두 보내고 싶은데요...

    > 요 필드는 배열이거든요...그냥 sendtext해서 중간에 구분자를 넣어서

    > 보내니까 변수의 범위를 벗어나는 바람에....쩝...

    > 그래서 만약 요필드의 배열크기가 한 100개 정도 된다면...

    > 요 100개를 하나씩 클라이언트로 보내면 클라이언트에선

    > 하나씩 받는방법을 말씀드리는 겁니다...

    >

    > 머...보내는건 대충 요런식으로 했는데여...

    > 이것도 맞나 모르겠습니다..

    >

    > procedure TsrvFrm.GetUserList(var max: Integer; Socket: TCustomWinSocket);

    > var

    > i : Integer;

    > tmp : String;

    > begin

    > for i := 0 to max do begin //max는 배열의 크기

    > tmp := Personal.Userid[i]; //Personal 클래스의 Userid라는 필드

    > Socket.SendText('U'+tmp);

    > end;

    > end;

    >

    > 클라이언트에서 받는건 도무지.....쩝...

    > 그럼 부탁드립니다....



    주흥님 보내기전에 먼저 보내어질 데이타들을

    완성된 문자열로 구성한후 한번에 던지시는게 어떨까요?



    사용자 정의 패킷을 먼저 구성하시구요,

    중간 내용은 콤마로 끊든지 아니면 * 문자로 끊든지

    그렇게 구성하셔서 만약 길이가 4000 바이트 이상이 되지 않는다면

    그냥 한번에 날리셔도 날아갑니다.



    받는 쪽에서는 받아서 구분자를 끊어서 다시 완성하시구요.

    음.. 어차피 소켓전송은 연속된 한바이트씩을 날리는 것이기 때문에

    먼저 사용자 정의 패킷을 구성하시고, 완성된

    문자열을 날리는 것이 가장 좋은 방법인거 같습니다.



    그럼.. 즐거운 프로그래밍 되시길~~~

  • Profile
    이주흥 1999.12.08 11:16
    안녕하세요..

    답변 감사합니다..

    근데 한가지 궁금한게 있거든요...

    스트링형 변수는 255자의 문자까지만 가능하잖아요..

    그러면 완성된 문자열로 보내면 만약 255자 이상 넘어

    가면 중간에 잘리지 않나요?

    저도 완성된 문자열로 만들어서 중간에 구분자 @ 를 넣

    어서 보내봤거든요....물론 잘 받아지죠...

    근데 이게 앞에서 말했듯이 255자 를 넘어가면

    어케 되냐 이거죠...

    어떻게 되나요?

  • Profile
    구창민 1999.12.08 20:45
    이주흥 wrote:

    > 안녕하세요..

    > 답변 감사합니다..

    > 근데 한가지 궁금한게 있거든요...

    > 스트링형 변수는 255자의 문자까지만 가능하잖아요..

    > 그러면 완성된 문자열로 보내면 만약 255자 이상 넘어

    > 가면 중간에 잘리지 않나요?

    > 저도 완성된 문자열로 만들어서 중간에 구분자 @ 를 넣

    > 어서 보내봤거든요....물론 잘 받아지죠...

    > 근데 이게 앞에서 말했듯이 255자 를 넘어가면

    > 어케 되냐 이거죠...

    > 어떻게 되나요?



    주흥님 설마 지금도 Delphi1을 쓰시는 건 아니죠?

    스트링 형은 Delphi2.0버젼 부터 255자의 한계를

    깨어버린지 오래 되었습니다(제가 알기론 약 2억 까지 가능..).

    사실 무한대라고 볼수 있겠네요..

    $H 옵션을 써야 하는데 이건 Default로 되어 있으니

    한마디로 그냥 쓰시면 됩니다.



    그리고, Ansi Char형과 자르고 붙여서 작업하기 모호할땐,

    StrPCopy명령을 쓰지 마시구(이건 255자 까지밖에 안됩니다.)

    StrCopy명령을 쓰세요. 사용법은 PChar로 TypeCast만 해주시면

    되니까 금방 하시리라 보구요.



    그럼.. 즐거운 프로그래밍 하시구요~~

  • Profile
    이주흥 1999.12.08 21:40
    오옷...캄사합니다..

    전 그런줄도 모르고...

    역시 전 파맹(파스칼 맹) 같네요...캬캬...

    다시 한번 캄사..(^_^);

    • 김대호
      1999.12.10 19:44
      새벽공기 wrote: > 퀵리포트 사용시 그룹헤더밴드를 쓰고 > 첫번째 그룹내용을 QrExpr컴포넌트에 Copy(c...
    • 이재식
      1999.12.08 09:30
      새벽공기 wrote: > 퀵리포트 사용시 그룹헤더밴드를 쓰고 > 첫번째 그룹내용을 QrExpr컴포넌트에 Copy(c...
    • 신호성
      1999.12.08 17:52
      성기정★★ wrote: > 수고 많으십니다. 지금 MS-Sql 쓰고, 델파이를 써서 프로그램을 하고 있는데.. > 문제...
    • 장덕권
    • 1999.12.08 05:44
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      1999.12.08 21:40
      장덕권 wrote: > 다른 폼에 있는 콤포넌트를 찾는 코드입니다. 계속 마지막줄에서 에러가 발생하는데 > ...
    • 장덕권
      1999.12.09 19:57
      이만준 wrote: > 장덕권 wrote: > > 다른 폼에 있는 콤포넌트를 찾는 코드입니다. 계속 마지막줄에서 에...
    • 이만준
      1999.12.09 22:05
      안녕하세요... swap 이 판넬이 맞다면..에러가 안나야는데요... if assigned(swap)then swap....
    • 장덕권
      1999.12.10 01:17
      이런 에러메세지가 뜨는데요 컴파일시에는 에러가 없고 실행시에 이런 메세지가 뜹니다. Project form1....
    • 안명호
    • 1999.12.08 05:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 오기주
      1999.12.09 00:08
      안명호 wrote: > 제목 그대로 입니다. > > 특정 앨리어스(alias)의 경로를 알아내는 방법을 알고 싶습...
    • 안명호
      1999.12.10 05:58
      오기주 wrote: > 안명호 wrote: > > 제목 그대로 입니다. > > > > 특정 앨리어스(alias)의 경로를 알...
    • 좋은날
    • 1999.12.08 05:24
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.12.09 03:15
      나이렉스 홈페이지에 가면 Diamond라는 컴포넌트(상용)이 있습니다. 요것을 사용하면 무척 빨라지죠. DA...
    • 전철호
      1999.12.09 02:33
      열심희 wrote: > 원격지의 크라이언트에서 어떻게 하면 Client Application이 실행이 됩니까? > NT나 98...
    • 열심희
      1999.12.08 07:03
      앞의 방법으로 원격지에서 실행을 하니 다음과 같은 에러가 뜹니다. ' exception ElntfcaseError in M...
    • 박성훈
    • 1999.12.08 03:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.12.08 09:35
      박성훈 wrote: > MDI폼에서 Active된 폼이 없을 때 Enter키를 쳐서 제일 왼쪽의 상위메뉴를 클릭한 것처럼...
    • 윤병익
    • 1999.12.08 03:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.12.08 09:02
      윤병익 wrote: > 안녕하세요.. 요즘 델파이를 공부하고 있는 사람입니다... > 요즘 채팅 프로그램을 만들...
    • nilriri
    • 1999.12.08 01:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이주흥
    • 1999.12.08 01:40
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.12.08 08:59
      이주흥 wrote: > 안녕하세요... > 음...혹시 이거 어케 하는지요... > sendtext로 서버에 있는 스트링형...
    • 이주흥
      1999.12.08 11:16
      안녕하세요.. 답변 감사합니다.. 근데 한가지 궁금한게 있거든요... 스트링형 변수는 255자의 문자까지...
    • 구창민
      1999.12.08 20:45
      이주흥 wrote: > 안녕하세요.. > 답변 감사합니다.. > 근데 한가지 궁금한게 있거든요... > 스트링형 ...
    • 이주흥
      1999.12.08 21:40
      오옷...캄사합니다.. 전 그런줄도 모르고... 역시 전 파맹(파스칼 맹) 같네요...캬캬... 다시 한번 캄사...
    • 구창민
      1999.12.08 08:55
      copretns wrote: > 저의 질문 요지는 요거에여~ > SystemParametersInfo(SPI_SETBEEP, 1, Pchar(0), 0); ...
    • copretns
      1999.12.08 01:44
      copretns wrote: > 저의 질문 요지는 요거에여~ > SystemParametersInfo(SPI_SETBEEP, 1, Pchar(0), 0); ...
    • halight
    • 1999.12.08 01:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김상면
      1999.12.08 02:16
      제가 방금 트리거를 하나 만들어서 아래와 같이 테스트를 해봤습니다... CREATE OR REPLACE TRIGGER T_CD_...
    • 이만준
      1999.12.08 21:43
      송수현 wrote: > 안녕하세요 봐주셔서 감사드립니다. 꾸벅~! > > 폼의 왼쪽 상단의 아이콘을 아예 안보...
    • 강윤환
    • 1999.12.08 00:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.12.08 00:48
      Ord 함수를 사용하세요. 강윤환 wrote: > 바이너리인 데이터를 > > 캐릭터 배열에 저장했는데요......
    • 강윤환
      1999.12.08 18:47
      감사합니다. 잘 해결이 되었네요. 앞으로도 많이 답변해 주세요. 이정욱 wrote: > Ord 함수를 사...