|
안녕하세요 kermi입니다.
키프님께서 보내주신 소스를 보니 Winsock API를 써서 만들고 계시군요..
그런데 Winsock에 대한 책을 한권정도 보셨는지요?
아무런 옵션변경이나 다른 작업없이 socket을 생성하게 되면 기본적으로
blocking socket을 생성하게 됩니다.
blocking socket은 recv 함수를 실행하면 데이터가 도착할때까지 기다립니다.
빌더에서 작업하시는 거면 TServerSocket이나 TClientSocket을 사용하시구요
만약 스터디가 목적이시면 책을 한권 보시는게 전체적인 개념이나 앞으로의
프로젝트를 진행하시는데 도움이 되리라 생각합니다.
그럼 좋은 하루 보내세요...
키프(오병종) 님이 쓰신 글 :
: 안녕하세요.
: 제가..프로그램을 짜다가 이런건 어떻게 해야되는지 잘몰라서 이렇게 글을 띄움니다.
: 다름이 아니라
:
: if (send(Socket, szSend, i, 0) == SOCKET_ERROR)
: {
: SISMessageBox(hDlg, TEXT("Cannot connect!!!"), MB_OK);
: return 0;
: }
: 위 처럼 보냈거든요..
: 그런데..받을려고 아래와 같이 했더니...
: if (recv(Socket, szSend, i, 0))
: {
: 내용----
: }
: 서버쪽에서 응답이 없거나 메세지를 주지 않으면 무한정 기다리게 되더라구요.
: 그래서..제가 몇개 찾아봤는데..잘모르겠더라구요..
: recv에서 타임아웃 같은거 있을것같은데..제가 잘 모르겠어요..
: 기왕이면 그쪽 소스부분을 같이 알려주시면 정말 감사감사감사하겠습니다.
: 꼭...부탁드릴께요..꼭!!!!!
|