TCPView가 수행 할 수있는 것과 유사한 프로세스 별 네트워크 사용 통계를 결정해야합니다. 당신이 this question, 또는 this question의 중복을 게시 저를 촬영하기 전에연결 대역폭 통계 가져 오기
Example http://img513.imageshack.us/img513/861/6601f15814544055a590e26.png
그래서, 나는 그 중 어느 것도 나를 실제로 이렇게 도울 수있는 철저한 답변을 지적하고 싶습니다.
저는 연구를 해왔고 netstat 또는 기타 Windows API와 같이 활성 연결과 관련 프로세스를 나열하는 방법이 분명히 많습니다 (IpHlpAPI.dll). 이제
는 Google'ing 내가 무슨 짓을했는지부터, 나는 많이 발견하지 않았습니다 -이 모호한 용어를 제외하고 : GetPerTcpConnectionEStats 및 GetPerTcp6ConnectionEStats. 아마도 IPv4와 IPv6을 통한 TCP에 대한 것입니다. 지금 내가 어디에서 해야할지 할 수있는 그 책을 읽고 있었다. 그러나 여전히 UDP는 제외됩니다. 또한 TCPViewer가 작동하는 XP 시스템에서는 이러한 기능을 사용할 수 없습니다.
TCP를 사용하여 만족 스럽지만 문제는 C#에서 사용하는 방법을 찾을 수없는 것입니다.
그래서 나는 모든이 몇 가지 질문으로 귀결 같아요
- 사람은 실제로 TCPView는 어떻게하는지 알고 있나요?
- TCP에 GetPerTcpConnectionEStats를 어떻게 사용합니까? 아니면 제가 제안하고있는 것을 성취 할 수 있습니까?
- UDP에 사용할 수있는 또 다른 알려진 대체 방법이 있습니까?
전체적인 요점은 프로세스 자체의 독립적 인 대역폭 사용량을 확인하는 것입니다. 총 시스템 대역폭 사용량을 계산하지 않습니다.
미리 답변 해 주셔서 감사합니다.
당신은 WMI/성능 카운터를 통해이 작업을 수행 할 수 있지만, 개인적으로는 그 API를 직접 찾지 마십시오. 다만 좋은 답변을 얻지 못하고 Google에 대한 추가 키워드를 찾고자 할 때 유용합니다. –
이것에 대한 해결책은 무엇입니까? –
@TomerPeled : 솔루션을 찾지 못했고 프로젝트를 포기한 적이 없었습니다 (어쨌든 개인적 이었기 때문에). 그래도 개별 프로세스의 대역폭 사용량을 결정하는 방법을 찾지 못하면 대답으로 게시하여 내 오래된 프로젝트를 마칠 수있는 동기를 유발할 수 있습니다 :) – caesay