프로그래밍 QnA

nefsjyj의 이미지

printwindow() 함수와 비슷한 기능을 하는 함수가 xlib에 있나요?

윈도우 API에서 비활성 상태의 창들을 스크린샷 찍을 수 있는 printwindow 함수를 찾았는데
혹시 리눅스에서도 이런 기능을 하는 함수가 존재하나요?

ljh30633의 이미지

Local 소켓 생성시 궁금한점이 있습니다!(UDS)

다음과 같이 UDS를 사용하여 로컬소켓을 생성 하였습니다.

if ((ssock = socket(PF_LOCAL, SOCK_DGRAM, 0)) < 0) {
perror("socket error : ");
exit(1);
}

memset(&local_addr, 0, sizeof(local_addr));
local_addr.sun_family = AF_LOCAL;
strcpy(local_addr.sun_path, "local_file");

1. 한가지 궁금한게 있는데 sun_path로 지정이 된 "local_file" 파일체가 bind하기 전에 있어야 되나요?

아니면 없을시 자동 생성이 되는가요?

bind하여 커널에 등록시 계속 bind error가 나는데 파일이 기존에 없어서 그런문제인지...

2. 파일이 없으면 이전에 그냥 fopen함수로 쓰기모드 옵션 w를 만들어 주려고 하는데 그것마져도 fopen이 에러가 나네요

redcrown의 이미지

socket통신에 원리에 대해서 질문있습니다.

이제막 프로그래밍 시작한 새싹입니다.

server와 client가 있을경우에

client에서 write함수를 통해 데이터를 보내면

client의 출력버퍼를 통하여 server의 입력버퍼로 보내고

server에서 read()함수를 통하여 입력버퍼에 있는 데이터를 읽어 오는 건가요?

만약 그렇다면

client 쪽에서 while문으로 write을 짧은 시간내에 여러번 반복을 하고

그것에 비해 server쪽에서 천천히 데이터를 읽어들이면

server쪽의 입력버퍼에 client 쪽 데이터가 계속 쌓이는 건가요?

또하나 만약

server쪽에서 천천히 읽고 있고 입력버퍼에 데이터가 남아 있는 상태에서

client쪽이 소켓연결을 끊는 경우

server쪽에서도 종료를 시키는데

그럼 server쪽에 입력버퍼에 있는 데이터들은 삭제 되나요?

kjh27814의 이미지

QListView 아이템 추가, 삭제 업데이트 시 느려지는 문제점

안녕하세요.

ListView에 모델을 등록해서 사용하는 중인데

이게 4만개정도의 항목에 대해서는 입력 / 삭제가 그나마 빠른편입니다.

하지만 데이터가 10만개가 넘어가게 되면 데이터를 입력 / 삭제를 할 때 프로그램이 한창 굳어있다가

입력이 되거나 삭제가 됩니다.

데이터가 입력 될 때 마다 datachanged 함수를 부르는데 하나씩 입력할때는 해당 index에 대해서만 업데이트를 하고

여러개를 한번에 입력하면 시작 index와 종료 index에 대해 업데이트를 합니다.

thread를 이용해 보는 방법도 생각해봐서 구글에 찾아보니 모델의 data()함수가 GUI thread에서 밖에 동작하지 않아 thread화는 불가능하다고 나오더군요.

혹시 다른 해결방법 없을까요?

답변 부탁드리겠습니다.

cleansugar의 이미지

수학 기호 채우기 알고리듬 문제

http://gall.dcinside.com/list.php?id=programming&no=373593&page=1&bbs=

?에는 + 또는 - 이 2가지의 기호만 사용할 수 있다.

? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ?....? N = K

K를 입력 받았을 때, 최소값 N를 찾는 문제

예를 들어

K=2 이면 N=3

+1-2+3 = 2

K=11 이면 N=5

+1-2+3+4+5 = 11

zzang3757의 이미지

멀티쓰레드로 한 소켓에 대해서 Write 하는 경우에 대해 질문 드립니다..

음,, 갑자기 궁금한게 생겨 한가지 테스트를 해보고있습니다.

서버는 연결된 클라 1명에게 3개의 쓰레드로 "aaaa~~" "bbbb~~" "cccc~~" 이렇게 각각 300바이트씩 500번 Write를 하게 하였습니다.

클라의 수신버퍼 크기는 300바이트로 셋팅하였습니다 ~

클라에서는 300바이트씩 Read 하여 파일에 출력하도록 하였습니다. 물론 클라는 멀티쓰레드로 Read하는것이 아니라 싱글쓰레드입니다.
서버의 Write만 3개의 쓰레드로 하는것입니다..

근데 파일에 찍힌 결과를 보면..

aaaaaaaaaaaaaaaaaaaa ~
bbbbbbbbbbbbbbbbbbbb ~
aaaaaaaaaaaaaaaaaaaa ~

이렇게 300개씩 잘 찍히다가 어느순간 보면

aaaaaaaaaabbbbbbb 이런식으로 패킷이 겹치는 순간이 있는 것 같습니다.

이게 진짜 패킷이 겹치는 것인지,, 이런경우엔 어떻게 처리해야하는건지 궁금합니다..

조언 부탁드립니다.

감사합니다.

livey의 이미지

IP가 수시로 변경 되는 경우 중개서버 없이 1:1 통신.

양쪽 기기의 IP가 변경될 일이 없는 경우는 중개서버 없이 1:1 통신이 가능한것같은데

그렇다면

1. 고정 IP 기기 <-> 수시로 IP가 변경되는 기기 (아이폰 등).
2. 양쪽 모두 수시로 IP가 변경되는 경우.

두가지 상황은 반드시 중개 서버가 필요한가요?
그리고 중개서버는 변경된 IP를 갱신하여 보관해주기 때문에 지속적인 통신이 가능한건가요?

upersbird의 이미지

AIX 6.1 kernel crash dump에 대하여..

질문 요약: AIX 6.1에서 커널 패닉 발생 시 관련 로그를 확인하고 싶은데 방법을 모르겠습니다.

syslog.conf설정: kern.debug /var/adm/ras/messages

를 설정하고 봐도 메시지가 남지 않네요..

정확한 방법을 파악하지 못하고 있는 것 같습니다.

도움주시면 감사하겠습니다. ㅠㅠ

atdty의 이미지

unsigned char -> unsigned short 캐스팅에 궁금한 점이 있습니다.

unsigned short B;
unsigned char A[2];

B = 42344;

memset(A, 0x00, sizeof(A));
memcpy(A,(char*)&B+1,1);
memcpy(A+1,(char*)&B,1);

unsigned short result;

result = *(unsigned short *)(A+2);

1. 이렇게 했을 때 값이 제대로 나오는데 왜 1바이트차이나는데 +2이며,
2. unsigned short->unsigned char 로 쉬프트연산을 하는 방법을 알고싶습니다..

tlling의 이미지

소켓 통신에서 전송 클래스안에 포인터 있을때 질문입니다

UDP 통신을 이용하여 클래스를 전송하고자 합니다..

클래스 안에 포인터와 배열이 들어가있습니다.. 그 부분을 빼고 하면 전송이 잘되는데

클래스안에 포인터가 있다보니 전송시에 세그멘테이션 에러가 뜹니다

아마도 포인터가 주소를 가리키고 있기때문에 그 주소를 서버측에서 모르기 때문에 그런것이라고 생각이 되어집니다

소켓 전송시에 포인터가 들어가 있으면 통신이 불가능한것입니까?ㅠ

페이지

프로그래밍 QnA 구독하기