프로그래밍 QnA

lovejin0309의 이미지

소켓 프로그래밍 중 recv 기법에 대한 질문입니다.

안녕하세요.

소켓 프로그래밍 중 데이터 수신 기법에 관한 질문입니다.

상대방이 보내 주는 데이터를 수신해야 하는데, 상대방이 데이터 송신을 끝냈다는 것을 어떻게 알 수 있을까요?

가령 예를 들어

상대방이 보내는 데이터의 크기가 512부터 1024까지 가변적일 경우에, 어떤 식으로 해야 가변적인 데이터 크기와 관계 없이 데이터를 수신할 수 있을 런지요?

소켓에 관련된 내용을 참조 해 보았는데, 소켓이 블럭킹 모드일 경우에는 소켓에 들어온 데이터가 없을 경우에는 계속 대기하고, 넌 블럭킹 모드일 경우에는 -1을 리턴한다고 나와 있는 것을 보았습니다.

dalant019의 이미지

DG Gryphon Protocol

ethereal을 사용하던 중에
프로토콜 타입이 DG Gryphon Protocol인 패킷이 검색됩니다.
저는 HTTP 포맷으로 메시지를 보냈는데요...
뭐가 잘못된 건지...
DG Gryphon Protocol이건 무슨 프로토콜인지 궁금합니다.
검색해도 이상한 것들만 나오고요~~~

neon20의 이미지

프로세스에 대한 질문입니다.

아래 부분이 현재 문제가 되는 코드 부분입니다.

[code:1] while(1){
if( (pid = fork()) < 0){
perror("fork error!");
exit(1);
}
if(pid != 0){
gettimeofday(&time1,NULL);
while(1){
gettimeofday(&time2,NULL);
if( (myusec = time2.tv_usec - time1.tv_usec) > TIME_OVER){

후끈남의 이미지

unix c library를 이용하여 윈도우에서 프로그램 돌리기 가능한

제가 unix c가지고 패킷을 분석하고 기타 기능들을 넣은 프로그램을 만들고 싶은데요

GUI는 JAVA로하고요

근데 문제는 GUI를 JBuilder을 이용해서 하려고 하는데
그러면 윈도우에서 돌아가야 하자나요.( 예전에 gui를 직접해봤는데 쉽지 않았던 기억때문에 JBuilder을 구해서;;; )

몇일 전까지는 생각을 못했는데요
JNI를 사용하더라도 unix c로 만든 프로그램이 윈도우에서 돌아가지는 않자나요;;;

이런것을 생각 못하고 계획만 짜고 unix c공부하는데 갑자기 생각이 나서 잠시 방황을;;;

anony의 이미지

pushl -4(%ebp)라는 명령어가 직접 메모리를 액세스한다고 보?

pushl -4(%ebp)명령어는 %ebp-4한 곳에서서 4바이트를
읽어서 스택에 저장하는 명령어로 알고있습니다.
만약 이동작이 여러번 발생한다면....... 계속 메모리를 액세스할까요?
아니면 캐시에서 가져올까요 :oops: :oops:

ps. 이명령어도 궁금합니다.
movl -4(%ebp) , %eax 이것도 메모리액세스를 할까요 아니면 캐시에서 가져올까요.

anony의 이미지

spin_lock에 대해서 궁금한게 있습니다.

리눅스에서 스핀락을 많이 사용하던데요.
spin_lock이라는것도 하나의 함수라면
spin_lock함수안에서는 race condition이 발생할가능성은 없을까요?
즉 한개의 프로세스가 spin_lock을 호출하고, 완료하지 못한상태에서
다른프로세스가 spin_lock을 호출해서 락을 획득하고
아까 프로세스도 다시 실행을 재기해서 락을 획득하고...
뭐 이런식으로요.

swunk의 이미지

Call trace에 관하여...

모듈 프로그래밍을 하던 중 아래와 같은 메시지들이 찍히더군요...
흔히 콜트레이스라고 하던데
이런 메시지는 왜 찍히는 건가요 ?
그리고 아래 메시지는 무엇을 의미하는 건지 어떻게 해석해야 되는지요 ? 참고로 말씀드리면 아래 메시지는 copy_to_user(to, from, len)로 from의 주소값을 to로 넘긴 후에 커널 영역에서 to의 값을 접근하려고 하니 찍힌 메시지입니다.

너무 질문을 뭉뜽거려서 하는것 같아 죄송 합니다만...아는게 없어서 그러려니 하고 이해해 주십시요..

swunk의 이미지

kernel 영역의 메모리를 user space에서 접근(?)

user space에서 값을 전달해서 copy_from_user() 를 통해서kernel space에 자료구조(링크드 리스트)를 생성합니다.

자료구조의 내용을 확인하기 위해서 copy_to_user()로 사용자에게 링크드리스트의 (시작주소)헤더 주소를 넘깁니다.

헤더 주소를 알기때문에 링크드리스트의 모든 내용을 접근 가능할 거라고(?) 짐작했지만 안되더군요...
해당 헤더값만 접근 가능했습니다. 그 외의 값을 접근하려 하면 세그먼트 폴트 납니다.

여기서 질문 입니다.

1)커널 영역에서 생성한 자료구조를 user space에서 접근하려면 혹은 자료구조를 통채로 넘기려면 어떻게 해야 하나요 ?

bizzare의 이미지

[질문] POSIX 파일 복사 함수.

A라는 파일이 있을 때, 이를 B라는 파일로 복사하고 싶습니다.
기존에 B라는 파일이 존재한다면 이를 덮어씌우도록요.

^^;

그리고 KLDP BBS 검색하는 요령같은것 있나요 -_-
도저히 검색을 잘 못하겠네요 :-)

leezone의 이미지

[Win32Api 죄송] 내가 실행한 IE에 다른 url 호출하는 방법

먼저 윈도우즈 프로그램 질문을 드려 정말 죄송스럽습니다.
좀 급박하여 올리니 아시는 분 너그럽게 용서해 주시고 답변좀 주세요

순수 Win32Api로 프로그램을 작성하고 있습니다.

CreateProcess 로 IE를 실행하면서 아규먼트로 URL을 주면 그 URL이 열립니다.

여기서 조금전에 실행한 IE에 다른 URL을 열도록 할 수 있는 방법이 있습니까?

즉, 새롭게 CreateProcess 하지말고요.. 아시는 분 답변 부탁드립니다.

페이지

프로그래밍 QnA 구독하기