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

델파이 Q&A
Delphi Programming Q&A
[4309] [질문] TCP Socket에 대한 질문입니다...
hwinet [ ] 1447 읽음    1998-09-01 10:38
TTCP에 대한 질문입니다.
TTCP를 사용하다 발견한 내용인데요,
TTCP.State = sckClosed인데도
DOS창에서 netstat -a로 확인하면 아직 connection을 끊지 못한 상태로 남아 있습니다.
한동안 남아 있다가(약 1~2분) 사라집니다. C++에서는 쉽게 된다고 그러는데
Visual Basic, Delphi에서는 잘 안됩니다.
그래서그런지 아래의 Button1Click을 콜하면 메세지박스에
"exception class EOleException with Message 'Address in use'."라고
나타납니다.
분명 TCP1.State가 sckClosed를 확인 했는데도요...

두번째 질문,  Socket을 연결하고 끊는데 얼마나 긴 시간이 요구되는지요.
TTCP.State를 보면 sckClosing,sckConnecting 이 있어서요.
시간이 걸려서그런지 하나의 버튼으로 TCP.Close/TCP.Connect를 못하는 것 같습니다
또한 TCP.Connect후 곧바로 TCP.SendData를 수행하면 안돼요.
일부러 sleep(6000)까지 주어 보았지만 sckConnected 상태는 아니더군요.
하지만 아래의
제가 사용했던 소스는 다음과 같습니다.
Memo1KeyDown Procedure로 실행하면 잘 됩니다.
Memo1에 놓일 때는 이미 TCP1.Connected로 변해 있기 때문인데 왜 한꺼번에
처리를 못하는지요..
어떻게 하면 Button1Click에 있는 Comment를 풀어도 실행할 수 있는지요.
델도사님들의 훌륭한 조언을 부탁드립니다.

procedure TSocketTestForm.Button1Click(Sender: TObject);
begin
     Memo1.Lines.Add('TCP1.State = ' + IntToStr(TCP1.State));
     if TCP1.State <> sckClosed then
     begin
          TCP1.Close;
     end;

     if InputQuery('Computer to connect to', 'IP Address :', Server) then
     if (Length(Server) > 0) then
     begin
          TCP1.Connect(Server,1124);
//        Sleep(6000);               // Connect Time을 위한 시간설정
//         if TCP1.State = sckConnected then
//             TCP1.SendData('STAT10123456789') // 이렇게하면 절대 보내지 못함
//           else
//              ShowMessage('Not Connected');   // 이 메세지 박스만 뜨게됩니다.
      end;
end;

procedure TSocketTestForm.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if Key = VK_Return then
        TCP1.SendData(Memo1.Lines[Memo1.Lines.Count - 1]);
end;


+ -

관련 글 리스트
4309 [질문] TCP Socket에 대한 질문입니다... hwinet 1447 1998/09/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.