Q&A

  • UDP 멀티캐스팅에서 Group 설정
안녕하세요
밑에 UDP 멀티캐스팅 통신에 대하여 질문하고 해결하지 못하여 조금 자세한 질문을 다시 올리게 되었습니다.

친절하게 대답해주신 분이 알려주신 컴포넌트를 찾지 못해서요..
Indy 버전을 바꾸려했지만....다른 분들이 관리하시는 프로그램도 문제가 생겨서 버전 업그레이드는 못하였네요.

지금 상황은 UDP 브로드캐스트 방식으로 데이터를 수신하였는데 멀티캐스트 방식으로 송신하게 되어
수신도 UDP 멀티캐스트 방식으로 변경하게 되었습니다.
델파이 버전은 5이고 indy9 입니다.

이것저것 찾다가 Indy Servers -> IdIPMCastServer 을 찾았습니다.
Properties에 보니 MulticastGroup을 설정하는 부분이 있어 그룹IP를 입력하고 Port도 설정하고
실행하였더니 아무 반응도 없었습니다.

그리고 혹시나 하고 브로드캐스트방식으로 사용하던 Indy Servers -> IdUDPServer의
Properties에 Bindings에서 IP와 포트를 설정하여 실행시켰습니다.
그랬더니 여기서는 "Socket Error # 10049 Cannot assign requested address" 라고 연결할 수 없다고 나옵니다....

네트워크팀에서는 멀티캐스트 Group IP에 조인만 하면 데이터 받을 수 있다고,,정상적으로 데이터를 송신하고 있다고 하니.. 제가 프로그램에서 설정을 잘못한거 같은데요....

제가 더 찾아보면서 이것저것 해봐야겠지만 전체 변경일자가 다가오다보니..네트워크팀이랑 싸우다 시간이
훌쩍 지나갔네요....

도움을 주시면 정말 감사드리겠습니다....



4  COMMENTS
  • Profile
    최용일 2010.04.14 08:21
    Multicast서비스를 하는것 같지 않은데 왜 Server컴포넌트를 쓰시는지요?
    단말쪽에서는 IdIPMCastClient컴포넌트를 쓰시면 됩니다. 멀티캐스트그룹설정하시고 Active속성을 True로만 바꿔주시면 될텐데요. 예전기억으로는 IGMPv3를 지원하지 않아서 따로 만들어 썼던 기억이 있는데 지금은 어떨런지 모르겠네요.
    데이터는 기존처럼 UDP컴포넌트를 써서 데이터가 오기를 기다리면 됩니다.
  • Profile
    이민규 2010.04.14 21:42
    조언 감사합니다.

    송신쪽에서는 데이터를 계속 보내는데 수신쪽 수정을 담당한 제가 처리가 늦어 데이터 확인이 안되네요.

    Indy Clients -> IdIPMCastClient를 보니 OnIPMCastRead 이벤트가 있어 이부분을 사용해 보았습니다.
    MulticastGroup에 그룹IP를 설정하고 Port부분에 포트를 설정하여 실행하였는데 데이터 수신에는 실패하였습니다.

    그리고 Indy Servers -> IdIPMCastServer에 MulticastGroup에 그룹IP를 설정하고 Port부분에 포트를 설정하여 수신하였는데
    수신이 되질 않습니다.

    컴포넌트를 잘못 사용하였는지 데이터 수신이 안되네요....

    그래서 wireshark를 이용하여 데이터가 정말 들어오는지 확인해보았습니다.
    그런데 wireshark에서 UDP를 선택하고(멀티캐스트 그룹IP를 설정하는 부분은 안보이더군요) 데이터를 확인해보았더니
    기존에 들어오던 브로드캐스트 방식UDP 데이터와 함께 보여 확인이 안되었습니다...
    같은 데이터를 브로드캐스트 방식과 멀티캐스트 방식으로 보내주어 확인이 어렵네요.

    인터넷, 책 등 이것저것 자료를 찾아보았지만 해결방법이 안보여 한번 더 조언 부탁드립니다.
  • Profile
    최용일 2010.04.15 00:06
    VLC를 이용해서 먼저 테스트해보세요. IGMP버전등을 확인해보시구요.
    http://www.videolan.org/vlc/download-windows.html


    WireShark쓰시는데 확인이 안될리가 없을텐데요... 데이터가 많으면 필터링하세요. 필터창에 IGMP치시면 IGMP패킷만 보일겁니다.
    Client쪽에서 IGMP패킷이 나가는가부터 WireShark로 확인해보세요
  • Profile
    이민규 2010.04.16 19:08
    감사합니다....IdIPMCastClient를 이용하고 네트워크 팀과 이것저것 확인하다보니..
    해결되었습니다....

    IdIPMCastClient를 사용하고 네트워크 장비 확인하니 데이터가 잘 들어오네요.....
    이상한 데이터가 함께 들어오긴하지만..^^;;

    감사합니다.
    • 이재욱
    • 2010.04.16 18:03
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 시니
      2010.04.16 18:21
      ... string은 char형들의 나열이라고 생각하시면 됩니다. char str; // str이라는 변수는 1바이트로...
    • 박제홍
      2010.04.16 19:22
      지정된 스트링 길이를 알아내는 법을 질문하신 것이 아니라, 시스템 내에서 사용가능한 스트링의 최대 길...
    • 최유준
      2010.04.16 19:38
      델파이 질문에 왠 C 답변이 올라온거죠?? 답변은 정성스레 올리셨지만..내용은 좀 당황스럽네요.
    • 구창민
      2010.04.16 20:25
      윈도우즈 32비트 버전에서 어플리케이션에게 할당되는 메모리의 크기는 2GB 로 알려져있습니다. 스트...
    • 이재욱
      2010.04.16 21:51
      답변 감사합니다. ^^
    • 폐기처분中
      2010.04.19 08:42
      시니님께서 올려주신 답변은 C에 해당하는 내용인지라 Pascal 을 언어로 쓰는 델파이에는 맞지 않습니다....
    • 신주용
      2010.04.16 18:16
      <!--CodeS--> 아...저도 그런 경험있습니다 전에 하다가 프로젝트 드롭되서 잊고 있었는데... ...
    • 정재현
    • 2010.04.16 17:56
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이유신
    • 2010.04.16 17:34
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 시니
      2010.04.16 18:22
      텍스트로된 파일의 행단위 정렬을 할때 사용하는 명령어이다. 복잡한 워드문서등의 편집이 아닌 간단한...
    • 이유신
      2010.04.17 00:14
      위의 해결책은 리눅스 명령이이네요 그런데 저의 문제점은 text file에 우선 field라는 개념이 없습니다...
    • 땅콩맨
      2010.04.17 07:12
      아니면 원하는 Column부분을 Sort할 수 있는 프로그램을 직접 제작하시는것은 어떠세요?
    • 황재훈
    • 2010.04.16 15:09
    • 8 COMMENTS
    • /
    • 0 LIKES
    • 송재호
      2010.04.16 16:42
      헛.. 저도 정말 필요한 방법인데.. 꼭 아시는 분 있음 답변 주셨으면 좋겟네요~
    • 하기
      2010.04.16 17:47
      RS232C통신을 이용하시면 된다고 하는거 같던데요...
    • 지나가는이
      2010.04.16 21:57
      232통신을 이용하면 read이벤트에서 읽은값이 string으로 넘어오니까. 커서위치하고는 상관이 없고 p...
    • 멋쟁이
      2010.04.16 23:02
      타이머에서 주기적으로 커서를 옮겨주는건 어떤가요?
    • 황재훈
      2010.04.17 02:59
      usb용 핸드스캐너는 그냥 바코드를 읽으면 수치로 표시됩니다 문자나 숫자를 입력할수 있는 곳이면 어디...
    • 델초
      2010.04.17 03:16
      위에 분도 말씀하셨지만 바코드 스케너를 시리얼 통신 방식(RS232C) 의 장비를 사용하셔야 합니다. ...
    • 땅콩맨
      2010.04.17 06:37
      델초님 말씀대로 RS232 방식에서 처리되는 핸드스캐너 프로그래밍방법을 찾아보면서 질문하신 문제가 R...
    • • • •
    • Conan
    • 2010.04.16 10:51
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 땅콩맨
      2010.04.16 10:32
      폼에 Acrobat ActiveX Control을 올려놓고 unit Unit1; interface uses Windows, Messages, S...
    • 신차돌
    • 2010.04.16 08:51
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2010.04.16 06:50
      프로젝트의 형태를 DLL 로 만드신것 아닌지요? EXE 로 하셔야 그냥 실행 됩니다. 그리고 윈도우 7이신...
    • 김재훈
      2010.04.16 07:25
      저의 경우 윈도우 7에서 델파이7과 2007을 사용중인데 델파이 7은 에러가 간혹 생기곤 하는데 2007은 괜...
    • 윤성철
      2010.04.16 08:03
      두분 답변 감사드립니다. 많은 도움이 되었습니다. ^^
    • 델파이2
    • 2010.04.16 01:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 우용우
      2010.04.16 20:25
      델파이 코딩인지 패스트리포트 코딩인지 정확히 하셔야 하겠지만 일단 패스트리포트 코딩이라고 가정...
    • cos
    • 2010.04.16 07:15
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이길남
      2010.04.16 18:21
      OnDrawColumnCell 이벤트를 사용하시면 될꼬 같습니다. 물론, DefaultDrawing는 False로 해주시고요.
    • 김정원
      2010.04.16 18:51
      DBGrid에서 DrawDataCell 이벤트에 Canvas에서 컬러를 바꾸고 DBGRID.DefaultDrawDataCell() 에서 바꿔주...
    • 임우식
      2010.04.20 03:42
      아 감사합니다.^^ 해결되었습니다.
    • 이민규
    • 2010.04.14 02:48
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.04.14 08:21
      Multicast서비스를 하는것 같지 않은데 왜 Server컴포넌트를 쓰시는지요? 단말쪽에서는 IdIPMCastClient...
    • 이민규
      2010.04.14 21:42
      조언 감사합니다. 송신쪽에서는 데이터를 계속 보내는데 수신쪽 수정을 담당한 제가 처리가 늦어 데이...
    • 최용일
      2010.04.15 00:06
      VLC를 이용해서 먼저 테스트해보세요. IGMP버전등을 확인해보시구요. http://www.videolan.org/vlc/down...
    • 이민규
      2010.04.16 19:08
      감사합니다....IdIPMCastClient를 이용하고 네트워크 팀과 이것저것 확인하다보니.. 해결되었습니다.......
    • 얼씨구
    • 2010.04.14 02:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 땅콩맨
      2010.04.14 07:05
      TComport 컴포넌트를 사용해보세요. <!--CodeS--> procedure TF_bs10.ComPort1RxChar(Sender: ...
    • 땅콩맨
      2010.04.14 06:45
      폼의 속성중에서 DoubleBuffered속성을 True로 바꿔보시길~
    • 화담선생
      2010.04.15 01:20
      물론.... 바꾸어 봤습니다.... Form 이건 Panel 이건......
    • 땅콩맨
      2010.04.15 07:06
      WM_ERASEBKGND 메시지나 DoubleBuffered 속성때문인것 같은데 왜 그럴지... 흠...