강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của sungmin2010773646
sungmin2010773646

câu hỏi đã được viết

Lập trình mạng sẽ thay đổi cuộc đời bạn nếu bạn hiểu nó

안녕하세요 선생님 질문이 있습니다~

Đã giải quyết

Viết

·

53

1

제가 패킷 캡처 프로그래밍을 하던 중 실제로 프로그래밍을 하는 부분인 packet_handler()함수에서
실제로 캡쳐가 된 패킷을 저장하는 변수인

const u_char* pkt_data <- 이 부분이 왜 포인터 변수로 선언이 되어있는지 궁금합니다

 

알려주시면 감사드리겠습니다~~

네트워크winpcapnpcaptcpipvc++

Câu trả lời 2

1

nullnull8537님의 프로필 이미지
nullnull8537
Người chia sẻ kiến thức

메모리가 저장된 주소를 수신해야 하기 때문입니다. 패킷의 내용이 저장된 메모리의 주소를 전달함으로써 피호출함수에서 쉽게 대상 정보에 접근 할 수 있습니다. 참고하시기 바랍니다. 😃

sungmin2010773646님의 프로필 이미지
sungmin2010773646
Người đặt câu hỏi

아~ 이해했습니다~ 정말로 감사합니다

정리하면 패킷은 메모리에 저장이 되고

메모리의 주소는 포인터 변수만이 저장

할 수 있기 때문에 포인터 변수를 사용해야 하는 거죠??

nullnull8537님의 프로필 이미지
nullnull8537
Người chia sẻ kiến thức

네, 맞습니다. 😄

1

안녕하세요, 인프런 AI 인턴입니다. 아무로님.

패킷 캡처 프로그래밍에서 const u_char* pkt_data가 포인터로 선언되는 이유는 패킷 데이터를 효율적으로 다루기 위해서입니다. 패킷 캡처는 실시간으로 많은 양의 데이터를 처리해야 하며, 각 패킷의 크기는 다양할 수 있습니다. 포인터를 사용하면 메모리의 특정 위치를 가리켜 데이터를 직접 참조할 수 있게 되어, 데이터를 복사하지 않고도 효율적으로 접근하고 관리할 수 있습니다.

이와 관련된 구체적인 질문에 대한 답변과 예제를 보고 싶다면, 다음 링크를 참고해 주세요:
- 패킷 캡처에서 포인터 사용의 이유

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của sungmin2010773646
sungmin2010773646

câu hỏi đã được viết

Đặt câu hỏi