프로그래밍 QnA + 설치 및 활용 QnA

이형민의 이미지

소켓의 keep-alive에 대해 질문입니다.

mfc 소켓으로 메신져 클라이언트를 만들었습니다.
클라언트를 사용하다가 한참 동안을 사용하지 않으면 소켓이 죽어버리는 경우가 가끔 발생이 됩니다.

nErrorCode는 WSAECONNABORTED 로 죽어버리는데
현재의 소켓이 살아있는지 죽었는지에 대한 정보를 알수 있는 방법이 없을지요.

if( Socket == INVALID_SOCKET )
{

}

소켓이 언제 죽었는지에 대한 노티를 원하거든요.

게시판을 좀 둘러보니깐 정기적으로 서버에 Send를 하면 죽지 않는다 하는데
원론적인 방법은 아닌거 같습니다

psjcap의 이미지

voltile에 관한 질문...

밑에 4개에 차이가 뭘까요..??

1) volatile int a
2) int volatile b
3) volatile int* c
4) int* volatile d

그리고 thread 종료 flag로 volatile을 사용하려고하는데..
전역변수로 사용하기가 어려워서.. 포인터를 이용하려고 하거든요..
그럴 경우 위 네가지 중 변수 선언을 어떻게 해야하나요..??

처음 변수선언하는 부분이랑 포인터르 받는 부분이랑 둘다요..
무지 헛갈리네요..ㅠㅠ

samdochen의 이미지

배열연산이요.

안녕하세요.. 허접질문... 헤~~

예를 들어..구조체가 있고, 파일이 있습니다.파일은 데이터가 바이너리로 되어있구요...

struct bae{
unsigned char a[2];
unsigned char b;
}BAE;
BAE baeinfo;
main()
{
fp = fopen("data.dat",w);
for(i=0; i<10; i++)
{
baeinfo.a[2]=fgetc(fp);
baeinfo.b=fgetc(fp);
}
fclose(fp);
}

이랬을때...
바이너리로 되어있는 파일을 확인할수 있게 텍스트로 바꾸면..
한 레코드당
hatbary의 이미지

ESTABLISH 를 강제로 종료할수 없나요??

안녕하세요??

서버를 코딩하다가 답답한 상황을 만나서 질문 올립니다..

레드햇 8.0, 커널 2.4.18-14smp에서 작업하구 있는데요...

서버 소켓을 KEEPALIVE로 설정하지 않고, 타임아웃을 설정해놨구..
클라이언트 측에서는 KEEPALIVE로 설정하구, 마찬가지로 타임아웃 설정해놨구요..타임아웃은 30초 줬구요..

근데..가끔 어떤 상황이 발생하냐믄...

netstat로 보면 recv-Q와 send-Q가 모두 0인데, 상태는 ESTABLISHED로 되어있구, 서버 프로세스를 보면, read(소켓번호, .. 에서 블럭되어 있거든요..

neobug의 이미지

FreeBSD의 시스템 콜(SystemCall) 질문 입니다.

Linux의 시스템 콜
아규먼트를 일단 스택에 넣어주고 시스템 콜 함수를 호출 한 다음에
ax에 시스템콜 index를, bx~dx 까지는 인자를 스택으로부터 읽어
들여온 후, 소프트웨어 인터럽트로 커널모드에 들어가는 걸로 알고 있습니다.

그러면 FreeBSD의 경우엔 어떻게 되는지 gdb를 이용해 알아보니
일단 아규먼트를 스택에 차곡차곡 넣고서는 함수를 호출......
호출된 함수 안을 들여다 보면 레지스터 이용 이라곤 ax 하나 밖에 없네요.
물론 ax에는 FreeBSD에 정의된 시스템 콜 index를 넣는 레지스터구요.

hackerlog의 이미지

유동아이피로 복잡스런 서버구성하는데

흠..무슨말부터 해야 정리가 잘될라나,,,정리를 해보도록 하겟습니다
하나로 케이블모뎀의 회선은 리눅스서버(메일서버,방화벽) 랜카드1에 연결되잇구 리눅스에 잇는
또 다른 랜카드2에서 허브로 허브에서 또 다시 NT서버(웹서비스,ftp)를 돌리려합니다.
예전에는 하나로회선이 바로직접 NT에 물려잇어 NT에 codns라는프로그램을 깔앗고,,ftp나 www서비스를 고급도메인서비스나 소유도메인서비스로 잘 사용해오고있엇지만..
현재는 리눅스서버에 메일서비스도 함께 운영해야할 위기에 몰렷습니다..

trugem의 이미지

sendmail...설정에서 변경할수있는가요..?

-----------------------------------------------------------------------------------
The original message was received at Wed, 3 Dec 2003 05:13:27 +0900
from [200.200.200.200]

----- The following addresses had permanent fatal errors -----
< mymail@hanmail.net>
(reason: 550 5.7.1 Sorry,access denied(anti-spam:100.100.100.100))

----- Transcript of session follows -----
... while talking to mx3.hanmail.net.:
>>> MAIL From:<mymail@netian.com>
<<< 550 5.7.1 Sorry,access denied(anti-spam:100.100.100.100)
554 5.0.0 <mymail@hanmail.net>... Service unavailable

mepeace의 이미지

make내 변수 사용은 ?

안녕하십니까 ?
make 명령에서 Makefile을 만들어서 컴파일하고 있습니다.
Makefile 내용중 일부는 다음과 같습니다.

BFLAG_UPDATE=NO

libTEST.a : test.o
ifeq ($BFLAG_UPDATE, YES)
ar -r libTEST.a test.o
endif

test.o: test.h
gcc -c -o test.o test.c
BFLAG_UPDATE=YES

위의 파일을 Makefile로 만들어서..수행을 시키면..
test.c가 컴파일 되는 시점에서...ar -r 명령어가 수행되고자 합니다.

분명..gcc가 수행된후..ifeq에서 $BFLAG_UPDATE는 원래값이 NO가 되어있습니다. 저는 $BFLAG_UPDATE를 변수처럼 사용하여..YES로 변경할려고

sirang의 이미지

structured data의 통신은 어떻게 하나요 ?

안녕하세요.

socket으로 통신할때, 기본적으로 character의 stream을 주고 받는데요,
만약
struct my_data {
int a;
int b;
}
위와같은 structure를 주고 받고 싶으면 어떻게 해야 하는거죠 ?

읽는 함수는 read()를 이용할 생각이구요.

제가 생각하고 있는 것은 다음과 같습니다.

char buf[MAX];
struct my_data * my;
read(fd, buf, MAX);
my = (struct my_data*)buf;

이렇게 하고나서 아래와 같이 사용할 수 있는 건가요 ?
tmpa = my->a;
tmpb = my->b;

jw0717의 이미지

ftp 접속속도에 대한 질문입니다.

pc2대에 레드헷 리눅스가 설치되어있습니다.

1대는 2년정도 전에 설치했던거고 1대는 며칠전에 설치해서 사용하고 있습니다

그런데 proftpd.1.2.9를 소스로 컴팔해서 설치하였는데

pc1대는 접속이 굉장이 느립니다. 두대다 컴파일 옵션은 같이 주었고

접속도 ip로 접속을 합니다. 검색을 해보니 tcp_wrapper 문제나 resolv.conf

답변이 있길래 접속이 느려지는 pc ftp 를 tcp_wrappers에 적용하지

않고 inetd.conf /usr/sbin/tcpd in.proftd를 /usr/sbin/in.proftd로

해서 사용을 해도 한 20초 이상 접속하는데 시간이 걸립니다. 혹시 inetd문제인

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기