Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
indyICMP 를 쓰레드로 사용할때(예제첨부)
ATTACHMENTS
271.6KB/25
MultiPIng.zip
소스를 보시면
각쓰레드 별로 idICMP를 생성하여
지정된 IP로 Ping을 날려서 결과값을
TListView에 표시하도록 되어 있습니다.
그런데 문제는 쓰레드간에 ICMP컴포넌트의
ReplayStatus값이 간섭을 일으키는 것같습니다.
인디 버전은 9.0 대 최종 버전입니다.
1
COMMENTS
이중철
•
2005.11.17 23:45
PING, ICMP는 복수스레드로 구현이 불가능 합니다.
이것을 모르고 PING ALIVE CHEK를 스레드를 구현하곤 합니다.
질답란 보면 가끔씩 PING을 스레드로 구현하고 서로 간섭을 일으킨다고 하는데
이는 구조적으로 어쩔 수 없습니다.
다른 통신 방식 (TCP, UDP)은 Host 접속시 Destination Port, Source Port라는 것이
존재합니다. 이경우 Destination의 하나의 포트에 접속시 Source Port를 바꾸어 가면서
여러개(최대 65000)의 스레드로 구현이 가능하지만 ICMP는 이 포트라는 것이 아예 없습니다.
즉, 창구가 하나 입니다.
하나의 창구로 오는 정보는 멀티스레드로 구현하더라도 먼저 캐치하는 스레드가 받게됩니다.
결국 어떤 스레드가 전송해서 어떤 스레드가 받는지를 보장하지 못합니다.
또한, 해당 프로그램이 핑으로 폴링하고 있는데 다른 프로그램이 해당 Destination에 Ping을 하여도
간섭이 일어납니다. 결국, 일반적인 핑은 하나의 컴퓨터(정확히 말하면 Interface당)에 오로지 하나의
프로그램만이 유효합니다.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
우용우
•
2005.10.29 02:41
2
COMMENTS
/
0
LIKES
TVideo의 한계성질문입니다.
채팅
•
2005.10.29 05:47
bmp를 jpeg로 압축하고 다시 압축할 필요가 있을까요? jpg자체가 압축알고리듬을 사용하므로 한번더 압축...
이중철
•
2005.10.29 04:12
마지막 질문내용만요 Wavelet 변환 알고리즘이라는 것이 있습니다. 뭐 내용은 잘 모르겠고 하여간 이...
GiS
•
2005.10.29 02:18
1
COMMENTS
/
0
LIKES
inno setup에서 선택적으로 설치하는 방법?
GiS
•
2005.11.01 23:41
자답입니다. 아래와 같이 스크립트를 작성하면 되겠습니다. [Files] Source: ..\myprogram.exe; Dest...
parch
•
2005.10.28 23:39
2
COMMENTS
/
0
LIKES
WebBrowser 사용시.
KGun
•
2005.10.29 02:53
버튼 클릭이벤트에 자바스크립트를 호출한후(LogOut 이겠죠?)에 페이지 이동을 시키면 안
nilriri™
•
2005.10.29 00:14
글쎄요 해당 사이트에서 로그인 했다는 정보를 어떻게 관리하는지 모르겠지만...보통은 세션으로 하지 않나...
신철우
•
2005.10.28 23:18
2
COMMENTS
/
0
LIKES
델7에서 dll을 레지스터에 어떻게 등록하나요?
송상현
•
2005.10.29 01:51
Winexec 나 ShellExecute 함수를(API 함수) 사용하여 DOS 프롬프트에서 처럼 DLL 등록하시면 됩니다. ...
신철우
•
2005.10.29 02:18
감사합니다.
마이크로김
•
2005.10.28 22:36
2
COMMENTS
/
0
LIKES
text 파일 빠르게 처리 할수 있는방법?
착한천사
•
2005.10.29 05:37
글쎄요.. txt 파일을 Access dB에 넣는다는건 순차적으로 처리할 수 밖에 없습니다.. Oracle등과 같은 대...
돌고래
•
2005.10.29 23:32
text file의 길이가 일정하다면 먼저 엑셀로 읽어들여서 다시 dbf로 저장하구 data pump를 사용하면 되지 ...
최승용
•
2005.10.28 22:02
2
COMMENTS
/
0
LIKES
TActionMainMenuBar를 사용하는데 실행을 하면 실행창이 뜨네요.
최승용
•
2005.10.28 22:47
원인을 알았습니다. 메인폼에 TTreeMenu와 TWebBrowser를 Dll로 폼을 만들어서 호출하여 보여주는데...
송영석
•
2007.12.03 20:43
저도 그 원인을 알아보다 발견한건데 Dll 사용하실 때는 정적인 방법으로 불러오지 마시고 동적...
webdel
2005.10.28 12:19
0
COMMENTS
/
0
LIKES
jpeg파일을 축소하고싶은데 좀 깔끔한 방법이 없을까요?
신철우
•
2005.10.28 08:49
2
COMMENTS
/
0
LIKES
dbgrid에 수평스크롤바 생기지않게 어떻게 하나요?
김종인
•
2005.10.28 10:15
procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCo...
신철우
•
2005.10.29 02:20
kivalan
•
2005.10.28 04:03
•
1
COMMENTS
/
0
LIKES
indyICMP 를 쓰레드로 사용할때(예제첨부)
소스를 보시면 각쓰레드 별로 idICMP를 생성하여 지정된 IP로 Ping을 날려서 결과값을 TListView에 표시하도록 되어 있습니다. 그런데 문제는 쓰레드간에 ICMP컴포넌트의 ReplayStatus값이 간섭을 일으키는 것같습니다. 인디 버전은 9.0 ...
이중철
•
2005.11.17 23:45
PING, ICMP는 복수스레드로 구현이 불가능 합니다. 이것을 모르고 PING ALIVE CHEK를 스레드를 구현하곤...
뉴라이프
•
2005.10.28 02:53
2
COMMENTS
/
0
LIKES
MDI 타입 폼에서 쿨바에 툴바올리고 툴바에 메뉴올리고, 최소,최대 버튼들이 사라집니다
김종인
•
2005.10.28 10:16
경험입니다만, 확실하지 모르지만 메인메뉴를 올리니까 되는 것 같더군요
뉴라이프
•
2005.10.28 19:14
제가 궁금한 것은.. 메인메뉴를 쿨바위에 올린 툴바에 올려놓고서도 최대화 최소화 버튼을 보이게 하...
김종균
•
2005.10.28 02:20
1
COMMENTS
/
0
LIKES
FieldbyName('Test').AsString 와 같은 메서드 생성 방법?
최용일
•
2005.10.28 02:28
안녕하세요. 최용일입니다. 간단한데요... 델파이 소스에도 있지만... 그냥 하나하나 만들면 됩니다. &...
서재덕
•
2005.10.28 00:05
2
COMMENTS
/
0
LIKES
txt파일 삭제하는법좀 알려 주세요
최용일
•
2005.10.28 02:32
안녕하세요. 최용일입니다. ls_path+sFileName란 파일이 존재하는지 먼저 확인해보시구요... MoveFil...
서재덕
•
2005.10.28 18:42
말씀하신대로 중간중간 try로 해서 잡아내니깐 되네요.. 감사합니다. 꾸벅 (_ _)
토니
•
2005.10.27 23:50
2
COMMENTS
/
0
LIKES
아..아주 난감한 상황입니다. Insert를 어떻게 시켜야 빨리 될지..게다가 에러처리는..ㅠㅠ
이중철
•
2005.10.28 02:57
다른 DB에서는 Tempary Table을 지원합니다. 전 주로 Informix 와 Sybase에서 사용했죠 오라클에는 없었어...
토니
•
2005.10.28 07:03
네, 임시테이블에 데이타를 넣었다가 원테이블에 넣는 것을 설명해 주셨네요. 제가 현재 처한 상황을 ...
권인식
•
2005.10.27 21:48
2
COMMENTS
/
0
LIKES
델파이를 어디서 부터 시작 해야할지
토니
•
2005.10.27 22:48
저도 아직 델파이 두달도 안된 초보입니다만, 제가 배운 방법을 말씀드리면 류종택님의 동영상 강좌를 보면...
권인식
•
2005.10.31 21:34
답변감샤 합니다...
장우석
•
2005.10.27 19:58
3
COMMENTS
/
0
LIKES
CPort 사용중 Hexa를 받아야 합니다. 고수분들의 리풀 부탁합니다.
이성훈
•
2005.10.28 01:22
var R_PK : array [0..1023] of Char ComPort.Read(R_PK, Count) for i := 0 to Count-1 do &...
장우석
•
2005.10.28 05:15
^0^ 감사합니다. 이성훈님 의 도움으로 해결 하였습니다. 문자열만 주는 것으로 생각했는데.....
한성우
•
2005.10.27 22:49
저는 고수는 아니지만... 질문의 내용으로 보아서... if A[I] = Char(#13) ...
토니
•
2005.10.27 07:21
2
COMMENTS
/
0
LIKES
동적생성한 쿼리오브젝트의 이벤트 핸들러는 어떻게 만드나요?
최용일
•
2005.10.27 19:14
안녕하세요. 최용일입니다. 이벤트핸들러를 연결시켜주셔야죠... qry := TZQuery.Create(self); qry...
토니
•
2005.10.27 19:18
아항~ 그런거였군여~~~~ ^o^ 정말 정말 감사합니다. :) 이제나 저제나 하면서 답글이 올라왔을까하고 게...
델파이-델짱
2005.10.27 02:51
•
0
COMMENTS
/
0
LIKES
OKcashbag 관련 DLL 함수호출에서 에러가 발생합니다..
김동명
•
2005.10.27 02:43
2
COMMENTS
/
0
LIKES
String 을 char변환하는 방법 있나요~~^^
델파이-델짱
•
2005.10.27 07:21
srtPcopy 를 사용하시면 될겁니다.
김동명
•
2005.10.27 19:49
감사합니다 근데요 srtpcopy 아니라 strPcopy 아닌가요?
쿠나
•
2005.10.27 02:34
1
COMMENTS
/
0
LIKES
초기화 방법
송상현
•
2005.10.27 18:30
OnActivate OnCreate OnShow Form의 이벤트중에 위에 세개를 잘 활용해 보시면 화면 처음에 시작...
토니
2005.10.27 00:06
0
COMMENTS
/
0
LIKES
Zeos의 TZQuery.SortedFields, UpdateMode, WhereMode는 무엇인가요?
kivalan
2005/10/28 04:03
Views
502
Likes
0
Comments
1
Reports
0
Tag List
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
이것을 모르고 PING ALIVE CHEK를 스레드를 구현하곤 합니다.
질답란 보면 가끔씩 PING을 스레드로 구현하고 서로 간섭을 일으킨다고 하는데
이는 구조적으로 어쩔 수 없습니다.
다른 통신 방식 (TCP, UDP)은 Host 접속시 Destination Port, Source Port라는 것이
존재합니다. 이경우 Destination의 하나의 포트에 접속시 Source Port를 바꾸어 가면서
여러개(최대 65000)의 스레드로 구현이 가능하지만 ICMP는 이 포트라는 것이 아예 없습니다.
즉, 창구가 하나 입니다.
하나의 창구로 오는 정보는 멀티스레드로 구현하더라도 먼저 캐치하는 스레드가 받게됩니다.
결국 어떤 스레드가 전송해서 어떤 스레드가 받는지를 보장하지 못합니다.
또한, 해당 프로그램이 핑으로 폴링하고 있는데 다른 프로그램이 해당 Destination에 Ping을 하여도
간섭이 일어납니다. 결국, 일반적인 핑은 하나의 컴퓨터(정확히 말하면 Interface당)에 오로지 하나의
프로그램만이 유효합니다.