Q&A

  • TClientSocket의 Port관련... 문의드립니다
TServerSocket 과 TClientSocket을 사용하고 있습니다

그런데 저는 소켓 통신 시 포트번호가 65535까지로 알고 있는데

기존 개발자가 100000을 넘어서는 번호를 설정해서 프로그램을 해두었는데 아무 이상이 없이 통신이 됩니다.

이번에 사무실에 방화벽을 설치하게되어 포트를 열어 주어야 하는데 65535가 넘어가는 포트는 설정을 할
수가 없는데 ...

소켓통신에서 포트의 의미가 뭔지 궁금합니다. 도움바랍니다



2  COMMENTS
  • Profile
    석주현 2008.06.05 03:00
    포트 번호는 보통 Ip를 통해서 호스트를 찾고 포트번호를 통해서 호스트 내의 통신 접속점을 구분하기 위해 쓰입니다.
    그리고 보통 예전 16비트에서 개발되어서 인지 범위는 1~65535 이고요

    전임자가 표준을 무시한 포트 설정을 하셨다면 지금이라도 바로 잡아서 개발하시는 게 맞다고 봅니다.
  • Profile
    장성호 2008.06.05 06:22

    TServerSocket의 Port를 100000으로 하고
    Active=true해 놓은후에
    netstat -a 해보세요

    TCP 에 LISTENING 중인 Port번호를 확인해 보면 34464 번이 Listning중일겁니다.

    tcp 해더에 port번호는 2Byte이므로 65535 를 넘어갈수가 없죠

    100000에서 65536을 빼면 34464가 되잖아요

    아마 그래서 100000-65535 = 34464 번으로 LISTNING하고

    TClientSocket에서도 34464 로 접속하는것 같습니다.

    그럼..

    • steps
    • 2008.06.14 02:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.06.15 02:26
      자답입니다. 코드에서 이미지처리에 리용된 GDI PLUS가 문제였습니다. GDI Plus를 쓴 경우 우의 증상...
    • 화이팅
    • 2008.06.14 00:54
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 깔쌈보이
      2008.06.14 02:51
      with mainf do begin 문장에 보면 name := 어쩌구 구문 있죠? 이 구문에 한글이 들어가서 발생한 오류입...
    • 화이팅
      2008.06.14 03:44
      이름을 바꾸니 위와같은 에러는 발생하지 않네요.. 깔삼보이님 감사합니다^^ 근데 실행을 시키면 아무런...
    • 석주현
      2008.06.19 02:44
      Form2.QuickRep1.Prepare; 를 해주시고 Preview 를 하셔야 합니다.
    • 김길남
    • 2008.06.14 00:08
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2008.06.13 20:21
      이름으로 찾는 FindComponent를 사용해 보세요. 그리고 FrmMain는 그촘의 이름입니다. <!--CodeS--&...
    • 강태원
      2008.06.13 20:53
      아하 저런 함수가 있었군요. 감사합니다. 이제 할수 있을듯...^^
    • 이정욱
      2008.06.13 21:04
      한가지 더 팁을 알려드리면, FindComponent 를 사용하셔도 무방합니다. 하지만 성능상의 잇점을 조금...
    • 강태원
      2008.06.14 00:15
      아하.. 밑쪽의 방법도 괜찮은데요?^^; 근데 이미 다 해놨는데... 바꿔야 하나...(이놈의 게으름..-...
    • 석주현
      2008.06.14 11:52
      아래쪽의 방법이 더 나은거 같네요. 코드 컴프리트 같은 책이나 아니면 보통 프로그래밍 관련 책들을 ...
    • 천천히
    • 2008.06.11 23:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2008.06.12 02:22
      for문 다음에 rowcount := rowcount + 1; 이렇게하면 보이겠네요. 전번에 처럼 rowcount로 하시면...
    • 홍성락
      2008.06.12 04:38
      2가지 방법으로 해보겠습니다. 1방법은 그냥 넣을때 곰마를 넣습니다, 그러나 실제 데이타와 다르므로 ...
    • 천천히
      2008.06.13 00:06
      님말씀대로 formatfloat 함수
    • 홍성락
      2008.06.13 03:10
      FormatFloat인자가 Variant라서 그런가봅니다 Cells[1, i+1] := FormatFloat('#,##0', StrToFloat(VarTo...
    • 천천히
      2008.06.13 19:09
      홍성락님..답변 감사합니다.. 그런데 또 에러가... ㅠ..ㅠ Cells[1, i+1] := FormatFloat('#,##0', ...
    • 홍성락
      2008.06.13 20:15
      아마 위에서 말한것 처럼 데이타에 숫자가아닌 값이 있나 보네요. try를 사용해 함수내 놓거나 별고 함...
    • 천천히
      2008.06.14 00:26
      감사합니다.. 해결했습니다... ^^; 복 받으세요...
    • 플루토
    • 2008.06.11 01:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.06.11 05:23
      파일을 다운로드하든 메모리에 스트림으로 써넣든 클라이언트에 이미지자료가 오기전에는 불가능합니다.
    • 이정욱
      2008.06.11 06:26
      만약 이미지가 커서 그런다면, 이미지 썸네일을 생성 후 받아서 보여주시면 됩니다.
    • 장성호
      2008.06.10 03:14
      <!--CodeS--> procedure TForm1.Button2Click(Sender: TObject); var idx: Integer; begin ...
    • 강태원
      2008.06.10 18:05
      아 C++ 처럼 형변환이 가능하군요. 감사합니다.
    • 석주현
      2008.06.10 03:06
      DateTimeToFileTime(EncodeDateTime(2008,6,9, 17,25,00,00)); EncodeDateTime 으로 한번 해보세요. ...
    • 이정욱
      2008.06.11 00:29
      FileTimeToLocalFileTime 를 참고해보세요 ^^ 우리나라의 GMT 타임 존이 다르기 때문입니다. 위의 ...
    • 석주현
      2008.06.11 09:41
      역씨 정욱님 대단하시네요. ^^ 저도 좋은거 배웠네요.
    • 장성호
      2008.06.10 03:54
      OpenDialog에서 파일명이 들어가는 부분은 ComboBox 입니다. vcl에서도 마찬가지 그렇지만 ComboB...
    • 백록화
      2008.06.10 00:49
      edit 의 imemode 가 imDontCare 이라면...다른 콤포넌트의 영향을 받을수 있습니다. edit1 에 들어오기전...
    • 바다소리
      2008.06.10 01:16
      감사 합니다 검색을위해 호출되는 하위 폼의 edit box에 imemode를 한글로 했었는데 거기서 영향을 ...
    • 임정미
      2008.06.09 09:31
      해결했습니다. 배열크기는 SetLength(value , s_count); 로 정해놓고 for 문은 scount+1 만큼 ...
    • 이정욱
      2008.06.09 20:10
      윽.. 도와드리려고 했는데... 챙피해 하지 마세요 ^^; 전 더 한 실수도 많이 한답니다.ㅜㅜ 꽤 긴...
    • 석주현
      2008.06.09 22:26
      ㅎㅎ 저도 캡춰해서 분석하다가 말았습니다. 제가 보긴 코드를 좀 나누고 좀 리펙토링 하셔야 할 것 ...
    • 이정욱
      2008.06.06 13:13
      test (a,b) 로 그냥 호출 하시면 됩니다. 그리고 그냥 ShowMessage(b); 하시면 제데로 출력될 것입니...
    • 플루토
      2008.06.06 20:24
      네 감사합니다. 수정했어요^ ^
    • 구창민
      2008.06.06 03:02
      이정욱님 편역한...델파이7 Check 또는 아래 델마당에 어떤분이 추천하셨던 책이네요.. 류종택님 저서....
    • 홍성락
      2008.06.05 23:29
      자료실에 [문자를 좌로 스크롤 하는 소스-이미지 사용]으로 올렸습니다. 수정하시면서 사용해 보세요
    • 김광식
      2008.06.11 00:54
      감사합니다...
    • 화이팅
    • 2008.06.05 10:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김병윤
      2008.06.05 12:37
      기본적으로 DATA는 Query한값을 --> DataSource를 통해 --> DBGrid에 보여줍니다. 결과적으로 Query의 ...
    • 화이팅
      2008.06.07 05:33
      고맙습니다..^^ 덕분에 잘 해결되었습니다~
    • 왕초보
    • 2008.06.05 02:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.06.05 03:00
      포트 번호는 보통 Ip를 통해서 호스트를 찾고 포트번호를 통해서 호스트 내의 통신 접속점을 구분하기 위...
    • 장성호
      2008.06.05 06:22
      TServerSocket의 Port를 100000으로 하고 Active=true해 놓은후에 netstat -a 해보세요 TCP 에...
    • 석주현
      2008.06.04 22:54
      디버깅 하시면서 쿼리의 결과가 제대로 나오는지 확인 부터 해보세요. 디비 구성이 어떤지 모르지만 ...
    • 이정욱
      2008.06.04 22:57
      저도 가끔 이런경우를 보는데, 아마도 for 문의 최적화 때문일 수도 있습니다. 디버깅을 해보시면, co...
    • 석주현
      2008.06.04 23:20
      아 그러고 보니 정욱님 말씀 처럼 최적화에 따라 달라지는 경우가 있습니다. 음 저 같으면요. v...