프로그래밍 QnA

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 통신을 이용하여 클래스를 전송하고자 합니다..

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

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

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

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

bluesky277의 이미지

리눅스 창 띄우는 소스 알려주세요..

저는 우선 우분투 사용하고 있습니다.
어떤 프로그램을 실행 하였을 때 창이 하나 뜨게끔하는 방법을 알고 싶어요.
구체적으로 노틸러스라는 검색프로그램 실행시 창을 하나 띄우고 싶은데.. (비번을 입력하라는)이건나중에 할일이고
우선 창을 하나 띄우고 싶습니다... 난해한 질문입니다만 부탁드리겠습니다.

morolty의 이미지

쉘스크립트 사용중 아주 간단한 정규식 질문이 있어요..

쉘스크립트 공부중인데요,

compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')"

라는 구문이 있어요.

저는 이것을 compressed변수에, 첫번째 argument로 받은 $1변수의 내용을 출력하는 결과값을 sed 명령어에 대입하여 저 정규식대로 치환하는거라고 해석을 했습니다.

궁금증 1. [[:alnum:]]은 [a-zA-Z0-0] 라고 알고있습니다. ^는 문자열의 처음이라고 알고있는데, [^[:alnum:]]은 코드가 동작하는 결과를 보니 알파벳과 숫자를 제외한 문자라고밖에 해석이 안되네요.. 맞는건가요?

궁금증 2. sed 명령어에 정규식이 하나밖에 없으므로 -e 옵션은 쓰지 않아도 되는것이 맞나요??

정규표현식에 대해 구글링을 해보려 해도 기호가 많아서 구글링이 잘 안돼서 여쭙습니다. 감사합니다.

페이지

프로그래밍 QnA 구독하기