프로그래밍 QnA

kid1402의 이미지

멀티스레드 채팅 프로그램 중 서버 질문이 있습니다

멀티스레드를 이용해서 다수의 클라이언트를 다루는 채팅 프로그램을 만들고 있습니다
클라이언트쪽도 역시 멀티스레드를 이용해서 워커스레드 하나는 다른 유저의 메세지를 서버로부터 계속 받아와 뿌려주고, 다른 워커 스레드 하나는 해당 클라의 메세지를 서버에 전송하는 형식이구요

서버쪽은 워커스레드가 다수의 클라이언트의 메세지를 받아 접속한 모든 클라에게 뿌려주도록 하고있어요..

지금 하고싶은게 3가지 정도가 있는데 감이 잘 잡히지 않아 질문드립니다. 깨알같은 힌트라도 좋으니 도와주시면 감사하겠습니다 ㅠㅠ

1. 서버의 stdin을 받아 종료하도록 하는 기능
서버에서 워커스레드를 하나 더 만들어서 유저 인풋을 계속 받도록 무한루프를 돌린다음 특정한 종료 메세지 (ex. quit)이 들어오면 접속된 모든 클라이언트의 연결을 끊고 listen 소켓도 닫은 다음 서버 프로그램을 종료시키려고 합니다. 그 외에도 많은 부수적인 기능(접속한 클라이언트를 보여준다더지 하는)을 넣을 수 있을것 같은데 일단 종료 메세지를 받는거 자체가 안되네요..

voy7의 이미지

공유기에 오가는 무선패킷을 캡쳐하려합니다.

안녕하세요 :-)
무선공유기를 이용하는 기기들의 무선패킷들을 캡쳐하려합니다.
무선공유기의 소스를 제가 openwrt라는 펌웨어를 설치하여 추가,수정할수 있게 되었는데
이제 패킷을 캡쳐하는 부분을 넣어아햡니다.

감이 잘안오네요... 어떻게 시작해야 할까요? winpcap은 사용안했으면 싶습니다..

jeongheumjo의 이미지

[완료]vim 스크립트 프로그램 - 디렉토리 다루기

제가 vim 스크립트를 좀 만져볼까 합니다.
하고자 하는 것은 ctag 와 cscope.out db 파일을 vim에 추가하는 것을 vim을 런치하는 디렉토리에 따라 달리 하고자 하는 것입니다.

현재 디렉토리가 $ACE_ROOT/ace 라면 {
    ctag 는 이런이런 것 cscope.out 은 이런이런 것 추가
} 아니라면 {
    ctag 는 저런저런 것 cscope.out 은 저런저런 것 추가
}

vim 스크립트 메뉴얼에서
http://vimdoc.sourceforge.net/htmldoc/eval.html#getcwd()
getcwd()라는 함수를 찾았습니다.

paek1ju의 이미지

한글 wstring을 string으로 변환

안녕하세요. 한글 자판을 작성하고 있는 사람입니다. 저번주에 올린 질문에 이어 또 삽질하다 글올립니다..

제가 변경하고 있는 코드가 한글을 모두 wstring wstr (L"ㄱ"); 와 같은 wide string을 사용하게 되어 있습니다.
헌데 한글을 조합하기 위해서 wstring wstr (L"ㄱ"); 을 string str 으로 변경해서 사용해야 되는데요.

아래 코드에서 보면 string str ("ㄱ"); 의 경우 str.size() 가 3이고 이를 unsigned char로 변형하면 각 바이트가 227, 132, 177 이렇게 됩니다.

fedious의 이미지

[완료]소켓프로그래밍에서 소켓을 여러개 쓰려고 하는데요

UDP로 IPC를 구현하려고 하는데요
하나의 프로세스가 두개의 프로세스와 통신을 하기 위해 소켓을 두개 생성하려고 합니다.
그런데 A, B프로세스간에 통신하는 소켓을 생성하고 통신하는건 문제가 없는데요
이후에 A, C 프로세스간에 통신하려고 소켓을 또 생성하려니까 문제가 발생하네요
근데 이건 뭐 리턴도 없이 그냥 종료가 되버려서 참 난감하네요;;

대략 이런식으로 소켓을 생성하는데요
socketInfo->serverSockfd = socket(AF_UNIX, SOCK_DGRAM, 0);
if (socketInfo->serverSockfd == -1)
{
perror("server socket ERROR!!:");
exit(0);
}

gokore의 이미지

make를 유저모드에서 했을 때와 루트모드에서 했을 때의 차이

가끔 메이크를 루트모드에서 하게 되면 실행이 잘 안될 때가 있는데요

대체 유저모드에서 하는 메이크와 루트모드에서 하는 메이크는 무슨 차이인가요 ?

gokore의 이미지

질문 하나만 하겠습니다.

cp 파일명 ../..

이렇게 해주면 적당한 위치로 파일을 복사해준다고 하는데

../..이면 위치가 어떻게 되나요??

그리고 scp와 cp의 차이점이 어떻게 되죠???

lkhyun1021의 이미지

두개의 네트워크 디바이스 사용하는 것에 대한 질문이요..

fedora 14 사용하고 있습니다.
802.11b 무선 랜카드 두 개를 꽃고 리눅스에서 사용하려했는데..
두개의 디바이스는 잡히지만, 두개를 서로 다른 ap에 연결해서 사용하려 하는데 되지 않습니다.ㅠㅠ
이더넷 카드 두개는 잘 되는데 무선랜카드는 되질 않네요..
따로 머 설정을 해줘야하는건지..
혹시 같은 무선 랜카드를 사용해서 안되는 것 같아 하나의 무선 랜카드를 다른것으로 교체해서 해보았는데도 되질 않네요..

아시는분 대답해주시면 감사하겠습니다..!!

gokore의 이미지

질문입니다.

pthread_mutex_init(&ctx->usb_devs_lock, NULL); 이런 코드가 있어서 무엇인지 알고 싶어 ctag를 쳤는데요

extern int pthread_mutex_init (pthread_mutex_t *__mutex,
__const pthread_mutexattr_t *__mutexattr)
__THROW __nonnull ((1));
이렇게 함수 선언(맞죠?)만 나오고 정의부가 아무리 쳐도 나오질 않는데요

이럴 때는 대체 어떻게 해야할까요? ㅠ

페이지

프로그래밍 QnA 구독하기