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

clauselan의 이미지

SSL 세션을 서버가 먼저 정리하고나면 클라이언트가 보내온 FIN에 대해서 ACK가 나가질 않습니다.

예전에 개발하여 납품한 장비에 있는 코드가 문제가 있는 것 같습니다.

구조는 TCP 또는 SSL 세션을 연결했다가 데이터를 송수신하고 연결을 끊는... 극히 단순한 구조인데요...
문제는 서버가 먼저 세션을 종료해야 합니다. 논블럭 소켓으로 구현했고요.

서버의 종료절차가

shutdown (fd, SHUT_WR);
nbyte = read(fd, ...);
if (nbyte == 0) close (fd);

이렇게 구성되어 있습니다. 서버가 먼저 종료절차를 시작하기 위해 shutdown()을 호출해서 FIN을 client로 보내고요, client는 ACK를 전송하고, close() 호출하여 역시 FIN을 보냅니다. 거기에 서버가 다시 ACK를 내보내 정상적을 종료가 됩니다.

그런데, 이 서버가 TCP 세션 뿐만 아니라 TLS 세션도 허용하고 있는데요.. 역시 종료절차는

taiga800의 이미지

Rewrite Rule 질문

http://wiki.taigasoftware.info/wiki/index.php

/wiki/index.php 경로를 제거하고싶은데

미디어위키를 봐도 아파치 문서를 봐도 잘 모르겠네요.. 어떻게해야하나요?

dltkddyd의 이미지

C++ 정규표현식좀 봐주세요.

#include <iostream>
#include <string>
#include <regex>
 
int main ()
{
  std::string s ("test subject");
  std::smatch m;
  std::regex e ("(sub)(.*)");
 
  std::regex_search ( s, m, e );
 
  cout<<m.size();
 
  return 0;
}

위와 같이 하면 m.size()가 3을 반환한다고 하는데, 제 gcc는 0을 반환하고 있습니다. 어디가 잘못된 건가요?

nikon의 이미지

pro*c는 c++로 프로그래밍이 안되나요?

전에 비주얼 스튜디오로 pro*c 사용 에러나서 질문올렸는데.. 그냥 설정에서 32비트 설정이 64비트운영체제에 사용되서 에러난거같아서 64비트 설정을 어떻게 하는지 몰라서 윈도우를 32비트로 갈아 엎었는데.. 이제 잘되네요..

그런데 c언어는 잘되는데 c++로 해보고싶은데 .pc파일을 컴파일하면 .c소스파일로 생성이되네요.. c++은 안되는건가요?

momark의 이미지

MFC ComboBox갱신

DB의값을 받아와 콤보박스에 넣었는데 새 다이얼로그를 띄워서 DB값을 변경하고()
view창으로 돌아왔을때 콤보박스에있던 값이 바꾼 db값으로 바꾸고싶은데 어떻게 해야 하나요()

livey의 이미지

포토샵 스크립트 활용 문의

여기에 써도 되는지 모르겠네요

포토샵 전문가분들 혹시 자바스크립트로 포토샵 사용하는 방법이나 소스자료 아시나요?
포토샵 책들을 많이 찾아봐도 스크립를 다루는건 찾기가 힘들던데 혹시 아시는분 자료 좀 부탁드립니다 ㅠㅠ

dltkddyd의 이미지

C++에서 정규표현식을 어떻게 사용하나요?

헤더에서 정규표현식을 지원하는 클래스가 있던데요. basic_regex라는 클래스를 사용하라는군요. 그런데 이 클래스의 원형이

template> class basic_regex

이던데요. 전체 문자열에서 insert의 위치를 찾고자 할 때 어떻게 해야할지 궁금합니다. 찾고자 하는 insert는 꼭 저런식이 아니라 태그 괄호와 함께 연이어 뒤섞여 있는 경우입니다. 그러니까

<~>i<~>n<~>s<~>e<~>r<~>t

이런 식으로 언급된 문자열도 찾을 수 있어야 합니다. 그래서 regex로 해당 패턴을 다음과 같이 만들 수는 있습니다.

greathero의 이미지

[C++]일반 포인터 vs 스마트 포인터

KLDP에 계신 여러분들은 일반 포인터와 스마트 포인터를 어떻게 보시는지 궁금합니다.
구글링을 해보면 스마트 포인터는 기존에 C#/Java같이 G.C의 혜택을 받았던 개발자들에게
메모리 해제라는 짐을 덜어준 것이라고 알고 있습니다.

하지만, 멀티 스레드 환경에서는 reference-counting 방식의 포인터는
생성, 복사, 파괴 과정에서 원자적이어야 하므로 퍼포먼스가 저해될 수 있다고도 알고 있습니다.

그런데, 스마트 포인터 자체가 일반 포인터에 비해 많이 무거운지라(정말 스마트 포인터가 일반 포인터에 비해 많이 무거운가요?) 일반 포인터를 사용하는 것을 선호한다는 얘기도 줏어들었습니다.

지금까지 알고 있는 지식을 취합해보면 싱글 스레드 기반에서는 스마트 포인터를 써도 크게 무리는 없겠지만 멀티 스레드에서는 일반 포인터를 쓰는 것이 좋다.
이정도로 정리가 되는데 C++ 에서의 자원 관리 및 성능에 있어서 고수님들은 어떤 포인터를 쓰고 왜 쓰는지 이야기를 듣고 싶습니다.

na94ojt의 이미지

소켓 통신을 할 때, 서버가 클라이언트보다 먼저 종료되었을 때....도와주세요 ㅠㅠ

소켓 통신을 할 때, 서버가 클라이언트보다 먼저 종료되었을 때 클라이언트는 여전히 종료되지 않은 상태에서
서버를 재실행 하면 accept 할 때 Invalid argument error가 발생합니다. accept() 함수를 사용할 때 주소구조체의 크기변수도 초기화 잘 되있구요.
서버가 종료될 때 종료시그널이 오면 소켓 전부 닫고 종료하도록 해놓았습니다.
소켓 재사용 옵션도 사용해봤구요. 위에 내용들은 서버소켓뿐만이 아니라 클라이언트 소켓도 포함되는 것입니다.
아 그리고 서버가 종료되고 클라이언트가 실행중일 때 서버가 종료된지 약 1분 후에는 정상적으로 서버가 잘 실행되더라구요.
그래도 서버를 종료되자마자 바로 실행하고 싶은데 뭐 방법이 없을까요?
도와주세요 ㅠㅠ

gonny95의 이미지

.

페이지

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