Q&A

  • 분류가 맞는지 모르겠네요.. 클라이언트 소켓을 이용한 메시지 전송시 질문 쪼메만....
* 사용환경 : 델파이5 / Windows 98

* 에러 메시지 :



간단한 메시지 전송 프로그램을 만들려구 함니다...



sendtext()를 이용해서 메시지를 전송 하려구 하는데요



단순히 메시지 전송만 하는게 아니구요



로그인 기능을 넣으려고 함니다..



그러려면 로그인 아이디와 페스워드를 보낼때와



보통 메시지를 보낼때 서버에서 받은 메시지가 아이디나 페스워드인지



아니면 보통 메시지 인지를 구분해야할 것 같은데요..



클라이언트에서 sendtext()를 이용할때 이러한 구분을 지을 수 있는 방법을 알려



주세요 ^^*



고수님들의 많은 조언 부탁드림니다...



질문하는 제 의도를 파악하기 힘드실지두... ^^;;



어떻게 말로는 잘 설명을 못하겠네요



고수님들은 제 질문을 대충 이해 하시리라 믿슴니다



많은 조언 부탁 드림니다

1  COMMENTS
  • Profile
    박서규 2000.08.02 04:18
    신형 wrote:

    > * 사용환경 : 델파이5 / Windows 98

    > * 에러 메시지 :

    >

    > 간단한 메시지 전송 프로그램을 만들려구 함니다...

    >

    > sendtext()를 이용해서 메시지를 전송 하려구 하는데요

    >

    > 단순히 메시지 전송만 하는게 아니구요

    >

    > 로그인 기능을 넣으려고 함니다..

    >

    > 그러려면 로그인 아이디와 페스워드를 보낼때와

    >

    > 보통 메시지를 보낼때 서버에서 받은 메시지가 아이디나 페스워드인지

    >

    > 아니면 보통 메시지 인지를 구분해야할 것 같은데요..

    >

    > 클라이언트에서 sendtext()를 이용할때 이러한 구분을 지을 수 있는 방법을 알려

    >

    > 주세요 ^^*

    >

    > 고수님들의 많은 조언 부탁드림니다...

    >

    > 질문하는 제 의도를 파악하기 힘드실지두... ^^;;

    >

    > 어떻게 말로는 잘 설명을 못하겠네요

    >

    > 고수님들은 제 질문을 대충 이해 하시리라 믿슴니다

    >

    > 많은 조언 부탁 드림니다



    안녕하세요.. 박서규입니다.

    이러한 경우에는 받는측에서 정형화된 레코드형태로 받는게 나을것 같습니다.

    예를들어 무작정 SendText를 쓰느게 아니구요..



    type

    PacketRecord = record

    MessageType : string[4];

    MessageData : string[250];

    end;

    var

    pRecord : PacketRecord;



    const

    mtTextMessage = 'F001'



    이렇게 선언을 하시고...

    소켓으로 보낼때는...



    s := TMemoryStream.Create;

    pRecord.MessageType := mtTextMessage; //F001이 메시지라는 암암리의 약정을...

    pRecord.MessageData := '잘 있었니.....!!!';

    s.Write(pRecord,sizeof(pRecord));

    s.position := 0;

    clientSocket1.sendstream(s);



    요렇게 하면 스트림으로 보내거든요..

    고러면 받는측에서 스트림을 재생해서 다시 pRecord형으로 변환한다음, MessageType을

    살펴본다음 요놈의 데이터가 뭔지를 판단하면 될겁니다... 헉헉....