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

kgcrom의 이미지

64비트 멀티코어책을 보고있는데 GDT 크기구하는 부분과 함수 호출시 SP이동에 대해 궁금한게 있어요.

안녕하세요.

64비트 멀티코어책 한장한장 곱씹어가며 읽고 있던중 리얼모드에서 보호모드로 넘어가는 부분에서 왜 이런 결과가 나왔는지 알수없는 부분이 있어 질문을 올립니다.

luckyjune의 이미지

centos5.8 glibc 패치 관련 문의 드립니다.

안녕하세요~
이번에 centos5.8(64bit) 이 설치되어 있는 서버들의 glibc 를 패치할려고 하니 yum으로는 2.5 버전이 최신버전이라고 나옵니다.ㅠㅠ
취약한 버전이 2.5~2.17 버전까지라 패치가 필요할 듯 한데요... 혹시 yum으로는 업데이트를 할수 없는건가요?
os 버전을 높이는 방법 밖에는 없는건가 해서 여쭤 봅니다. ㅠㅠ

dhlee1985의 이미지

이직하고 구조체에 대한 고민...

여태까지 구조체 멤버변수로 CString을 사용한 적이 없습니다.
구조체는 무조건 사용 전에 memset_s()와 같은 함수를 통해 초기화를 해야된다는게
프로그래밍 지론(?) 중 하나 였거든요.
문자열 쓸일이 있으면 CString 대신 TCHAR[]을 사용했습니다...
다행스럽게도 여태까지 거쳐간 회사들도 전부 구조체 안에서만큼은 CString을 사용안했구요...


근데 이번에 입사한 회사에서는 문자열 처리를 전부 CString을 하더군요.(구조체안에서도)
팀 인원이 꽤많아 이런 팀 규칙을 깨고 제 지론때문에 제가 수정하는 소스에서만 TCHAR[]을 사용했다가는
다들 피곤해 질꺼같아 저도 CString을 사용하려고 합니다.

지금 제가 고민 중인건
CString이 들어있는 구조체는 초기화&복사를 하기위해서 생성자와 대입연산자를 넣어야 할텐데
이건 그렇다 치더라도 구조체 안에 int,bool 값따위만 있는 구조체는 생성자,대입연산자를 만들기보다는

woooke의 이미지

c언어 소켓프로그래밍] 서버 select와 쓰레드 관련 질문입니다.

안녕하십니까

새내기 인턴으로 네트워크 프로그래밍을 공부하는 중에 질문이 있이 글을 올립니다.

1] Thread를 이용해서 다중 처리 서버를 제작하는데

클라이언트에서 connection이 들어오면 accept하고 쓰레드에 fd를 넘겨서 처리하는 서버를 만들고 테스트하였습니다.

테스트 클라이언트는 쓰레드를 생성해서 한번에 여러 데이터를 서버에 쏘게되는데, 이때 서버에서 fd가 10~20%정도 씹힙니다.

메인쓰레드에서 클라이언트 요청 처리 쓰레드를 호출한 후

메인쓰레드에서 클라이언트 요청 처리 쓰레드보다 먼저 매개변수에 접근하게 되어 발생하는 듯 한데 해결책을 어떻게 잡아야

할지 궁금합니다.

2] 멘토님께서 select를 하고 accept를 윗단해서 한 후 쓰레드에 fd를 넘겨서 서버를 작성하라고 하셨는데,

개인적인 생각으로는 select를 하고 쓰레드에서 accept를 하여 처리한다면 위의 1번 이슈는 해결될 것 같은데, (매개변수로 서버 소켓만 받으면 되므로)

Internet03의 이미지

C# TCP/IP 패킷 압축전송 DeflateStream질문 드립니다.

먼저 코드부터 보여드리겠습니다...

Server
byte[] sizebuf = new byte[sizeof(long)]; //받을 데이터 사이즈 크기 확인
screen_ns.Read(sizebuf, 0, sizeof(long));
screen_ns.Flush();

long size = BitConverter.ToInt64(sizebuf, 0);

if (size < 0 || size > 500000)
continue;
byte[] buf = new byte[size];
screen_ns.Read(buf, 0, buf.Length); //클라이언트로부터 값 리스브

inviolable의 이미지

네트워크 관련해서 볼 책 더 있을까요???


1. 데이터 통신과 컴퓨터 망

2. 컴퓨터 네트워크 구조

3. TCP/IP 윈도우 소켓 프로그래밍

이 3개 다 봤는데

네트워크 재밌어서 그러는데 네트워크 관련해서 또 다른 주제 볼 책 있으면 추천 좀 부탁드립니다.

forest62590의 이미지

user level thread / kernel level thread 관련질문입니다.

공룡책을(Operating system concepts)보니

"사용자 수준 스레드, 커널 수준 스레드를 지원하는 운영체제에서는 스케줄되는 대상은 프로세스가 아니라 커널 수준 스레드이다."를

보고 개인적으로 이해한것이 맞는지 궁금하여 질문드립니다.

---------------------------------------------------------------------------------

일반적으로 책에서 설명하는 프로세스 스케줄링 알고리즘(라운드 로빈, FCFS, ...)은

실질적으로는 커널 스레드에서 적용된다고 봐도 되며

커널은 커널 스레드를 생성된 프로세스의 종류에 상관없이

커널 스레드 전체를 해당 스케줄 알고리즘으로 스케줄링한다.

그리고 프로세스 상태라고 설명하는 run, block, ready같은 것은

단일 프로세스 단일 스레드라고 가정하였을 때

커널 스레드를 스케줄링하여 나오는 상태와 동일하기 때문에

dunphy23의 이미지

Objective C에서 프로퍼티에 관한 질문입니다.

안녕하세요. 이번에 Objective C를 공부해보면서 좀 헷갈리는부분이 있어서 질문올립니다.

일단 소스는 아래와 같구요.

jmonaco88의 이미지

aix 5.2에서 gcc를 설치하던 도중 rpm 에러가 났습니다...

aix 5.2에서 gcc를 설치하던 도중 rpm 에러가 났습니다...

현재 현상은 rpm을 실행만 해도 같은 에러가 나는걸로 봐서.... rpm의 문제인 것 같습니다.

hxploit의 이미지

localhost:55555 로 바인딩하는데 이미 TIME_WAIT 가 있을 때 랜덤 포트로 바인딩되는 경우가 있나요?

음.. 좀 황당한 경우인데요.

대략 이런식으로

addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
addr.sin_port = htons(55555);

이렇게 127.0.0.1:55555 를 바인딩하고 있습니다.
이 때, 처음 한 번 열때는 당연히 잘 열립니다. 이 상태에서 한 번 클라이언트 연결을 시킨 다음
바로 종료해서 netstat 에 TIME_WAIT 가 잠깐 남아있도록 합니다.

그리고 이 상태에서 다시 서버를 켜서 55555 바인딩을 시도하면, 에러가 나거나 하면 모르겠는데
잘 실행이 되고, netstat 을 확인해보면 황당하게도 0.0.0.0:xxxxx 로 바인딩 되어 있습니다.
포트는 랜덤하고 localhost 가 아니라 INADDR_ANY 가 되어 있습니다.

이게 정상적인 경우가 맞나요?

페이지

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