C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[76237] Re:메모 통신에서 텍스트 중복 문제
시동이 [] 855 읽음    2022-01-10 15:54
프로토콜을 이용해 해결했습니다
빠르게 치는 경우 텍스트가 보내질 때 차례로 보내지는 것이 아니라 한 번에 보내지는 게 문제였는데,
보내는 데이터를 좀 딜레이 시켜도 문제가 해결되지 않더군요.

그래서 원래는 앞부분에만 프로토콜을 사용해 텍스트를 잘랐는데
처음과 끝부분 양쪽 다 프로토콜을 사용하여 앞뒤 사이의 텍스트를 사용하는 방식으로 바꾸었습니다.

끝부분 프로토콜 이후에 처음 프로토콜이 반복되면,
그 부분은 다른 변수에 저장해 놓고 다시 뒤의 프로토콜을 인식하여 메모의 텍스트를 갱신시켰습니다.


시동이 님이 쓰신 글 :
: 안녕하세요
:
: 전자 칠판에 서버와 클라이언트 간에 메모를 주고 받는 기능을 만들고 있습니다.
: 텍스트를 천천히 치면 문제가 없는데 빠르게 칠 경우
: 텍스트를 받는 쪽 메모에 보낸 텍스트가 중복되어 나타나는 현상이 일어납니다.
: 어떻게 하면 해결할 수 있을까요?
:
: 예를 들면
:
: 보낸 메세지:
: abcdefg
:
: 받은 메세지:
: abcdefgabcdefabcde
:
: 이런 식으로 보입니다
:
: //---------------------------------------------------------------------------
: void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) //클라이언트로부터 메세지 수신
: {
:     int i;
:     AnsiString Read, Prot;
:
:     Prot=Read.SubString(1, 2);
:     Read=Read.Delete(1, 2);
:     if (Prot=="02")
:     {
:         Memo1->Text=Read;
:     }
:
: }
:
: //---------------------------------------------------------------------------
:
:
:
:
: void __fastcall TForm1::Memo1KeyPress(TObject *Sender, System::WideChar &Key) //텍스트 보낼 때
: {
:     if (write==0)
:     {
:         for (int i = 0; i < Client_Number; i++) {
:             ServerSocket1->Socket->Connections[i]->SendText("02"+Memo1->Text);
:         }
:     }
: }

+ -

관련 글 리스트
76235 메모 통신에서 텍스트 중복 문제 시동이 810 2022/01/09
76237     Re:메모 통신에서 텍스트 중복 문제 시동이 855 2022/01/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.