프로그래밍 QnA

indizarm의 이미지

동시에 여러 thread를 만들고 각각의 채널로 그 thread들과 통신

동시에 여러 thread를 만들고, 만들어진 thread들과 각각
독립적인 채널로 main process가 대화합니다.

1. 언제 thread가 생성/ 소멸될지 모르며
2. main process는 각 thread에게/ 로부터 다른 데이터를
주거나 받습니다.
3. 동시에 여러 thread가 떠있는 경우, 그 thread들을
감시해서 적절하게 데이터를 보내거나 받는 처리를 해야
합니다.

어떻게 구성해야 할까요?

지금 생각한 것은

1. thread와 메세지큐
2. 메세지큐는 키값을 달리하는 방법으로 구분

zombie007의 이미지

setsockopt에서 SO_RCVTIMEO에 대해..

안녕하세요....
지금 간단한 서버를 구현 중인데요....

클라이언트에서 일정 시간 입력이 없으면 연결을 close 하려고하는데요..
setsockopt에서 SO_RCVTIMEO 를 사용해봤는데...
아무런 입력이 없었는데요... 계속 뭐를 close하던데.. 어떤것인지 모르겠습니다..
혹시 더 좋은 방법이 있는지도 궁금하구여....
그럼 많은 조언 부탁드립니다...

setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tim, sizeof(tim));
은영신랑의 이미지

(Recursive ? )Makefile 사용법좀 알려주세요.

Makefile을 사용하는데요.
/root/module 에서 작업을 하고 Makefile및 소스가 있고요.
/root 에서 스크립트 화일을 만들어서 다른 작업을 하고
/root/module/make를 실행하고 싶은데요.

cd /root/module
make
cd /root

이런식으로는 되는데요, 한줄로 실행할 수 있는 방법은 없나요?

isinji의 이미지

소켓 close시 Block되는 현상...

일:다수 형태의 socket 프로그램입니다. poll을 사용하여 클라이언트를 처리 중인데 client의 종료시 간혹 서버프로그램에서 이상한 점이 발견됩니다.

poll descriptor set을 검사할 때 POLLHUP이 발생하면 해당 descriptor를 close하고 descriptor를 -1 로 셋합니다. 그런데 간혹 close가 바로 리턴되지 않고 약 2초정도 block 후 return되는 현상일 발생합니다. 현재는 close 전에 alarm(1)을 셋하여 close가 1초 이상 지연되지 않도록 되어있습니다.

따라서 close가 1초 이상 지연될 경우 interrupt되어 해당 descriptor가 poll의 descriptor set에서 빠지지 않으므로 다음 번 poll()에서도 해당 event를 받게 되더군요. 1초 이상 close에서 지연되면 업무에 미치는 영향이 커서 어쩔 수 없이 이렇게 사용하고 있다고 합니다.

dhryu21의 이미지

JDBC localhost 로 연결시 에러

안녕하세요?
현재 레드햇 7.3 과 오라클 9i 버전을 설치하였는데요
JDBC를 이용하여 db 에 붙어보려고 하는데 자꾸 connection fail 이 되네요
코드는 다음과 같이 간단하고요..

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:tofino", "scott", "tiger");
PreparedStatement pstm = con.prepareStatement("SELECT * FROM EMP");

아무래도 호스트명이 잘못된거 같기도 한데...
현재 tnsnames.ora 는 다음과 같이 설정되어 있습니다..

zhangyuan의 이미지

[질문]이차원 동적생성 문제

[code:1]#include "stdio.h"

int main(int argc, char* argv[])
{
char source[]={'a','b','c'};
char **dest;

dest=new char*[10];
*dest=new char[5];

for(int i=0;i<10;i++)
for(int k=0;k<5;k++){
dest[i][k]='\0';
}

dest[0][0]=source[0];
dest[0][1]='\0';
dest[1][0]=source[0];
dest[1][1]='\0';
dest[2][0]=source[0];
dest[2][1]='\0';

blue621의 이미지

[질문] ls를 흉내내고 싶은데..

ls를 흉내내는 프로그램을 만들고 싶은데요..ㅎㅎ;;

ls의 기능에다가 서브 디렉토리 까지 순회할려구 하는데..

chdir을 어떻게 사용해야 할지..;;

간단한 코드좀 알려주시면 감사하겠습니다^^;;

서브 디렉토리 순회하는 것만;;

그럼 즐거운 하루 되세요 ^-^

sugarlessgirl의 이미지

pthread 에서 lock 과 unlock 에 대해서 질문입니다.

안녕하세요..
unix network programming vol.2 를 보다가 잘 이해가 안가는 것이 있어서 질문 드립니다.

void * produce(void *arg)
{
                ...
  Pthread_mutex_lock(&nready.mutex);
  if (nready.nready == 0)
    Pthread_cond_signal(&nready.cond);
  nready.nready++;
  Pthread_mutex_unlock(&nready.mutex);
                ... 
}

[code:1]void *
consume(void *arg)
{
int i;

for (i = 0; i < nitems; i++) {
Pthread_mutex_lock(&nready.mutex);

dondek의 이미지

fflush( stdin ) ???

fflush( stdin );

man page에 보면,

Quote:
주의
fflush 는 C 라이브러리가 제공하는 유저 공간 버퍼만을
지운다는점에 주의해라. 데이터가 디스크에 저장되도록
확실히 하기 위해, 커널 버퍼들은 sync(2)나 fsync(2)로 역시
비워져야 한다.

이렇게 나오는데 언젠가 MSDN에서 fflush( stdin ); 과 같은 샘플 코드를
본 적이 있는 것같고, 자꾸 학생들도 저 코드를 물어보는데 써도 되는건지,
아니면 쓰면 안되는 것인지.. 그것도 아니면 환경에 따라서 다른건지 궁금합니다.

kimyh의 이미지

에러메세지의 의미좀 부탁드려요.

아래 메세지에서 T_CONSTANT_ENCAPSED_STRING 의 의미가 무었인지요.
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /usr/local/apache/htdocs/mamul/apart/apartmama/admin/updateAccount.php on line 135

페이지

프로그래밍 QnA 구독하기