import : 자바 프로젝트 내에서 다른 라이브러리 함수를 포함 시킬떄 사용

프로젝트 맨 윗단에

import java.sql.Struct;
import java.util.*;

이런식으로 사용 한다.

 

System.out.print 씨리즈 : 화면 출력용

System.out.println (i + "*" + j + "=" + (i*j) ); 이런식이나

if( i == 1 ) continue;
    System.out.println(i); 이런식으로 사용한다.

 

 

for, if, continue, break : C와 동일 하다.

'Java !!! > step_1' 카테고리의 다른 글

import, package  (0) 2015.03.31
public String toString()  (0) 2015.03.31

자주 발생하는 수신 대기 중 발생되는 에러 리스트

 

1. ERROR_SEM_TIMEOUT( 121 )

The semaphore timeout period has expired.

장비(방화벽 또는 라우터) 이상 또는 제한으로 인한 네트워크 단절(랜선을 뽑는 경우도 포함)이 발생했을 때

 

2. ERROR_NETNAME_DELETED( 64 )

The specified network name is no longer available.

보통 IOCP에서 소켓 끊어짐의 상징은 0 byte read다.

0 byte read가 통보되는 시점은 상대방 소켓에서 closesocket() 혹은 shutdown() 함수를 호출한 시점임

즉, 상대방이 closesocket() 혹은 shutdown() 을 호출하지 않고 종료해버리면 일반적으로 0 byte read는 발생하지 않는다.

이렇게 0 byte read가 발생하지 않은 상태에서 read() 혹은 write()를 시도하면 상대는 이미 종료 되었으므로

ERROR_NETNAME_DELETED 에러가 나게 됨.

 이러한 경우를 우아한 종료와는 반대되는 개념으로 HardClose라고 함.

 

 

3. WSAENOTSOCK( 10054 )

An operation was attempted on something that is not a socket.

지정한 소켓은 정상 적이지 않습니다(INVALID_SOCKET). 별도의 종료처리없이 소켓을 닫으면 나옴.

 

 

4. ERROR_IO_PENDING( 997 )

펜딩은 수신중이라 걍 패쓰

 

 

 

5. ERROR_OPERATION_ABORTED( 995 (

The I/O operation has been aborted because of either a thread exit or an application request.

1. 작업이 취소된 사례. CreateIoCompletionPort에 추가한 핸들(소켓)이 닫혔을 때.

 클라이언트가 연결된 상태에서 서버가 먼저 종료하면 발생.(server socket이 close되어서)

2. 동시에 송수신할 때

 CreateIoCompletionPort에 핸들(소켓)을 추가하기 전에

 WSADuplicateSocket 이나 DuplicateHandle 를 이용해 핸들을 복사하여 분리해서 추가해주면 된다

   고 한다.

 

 

 

 

 

 

 

 

'Server' 카테고리의 다른 글

크리티컬섹션, 뮤텍스  (0) 2012.09.04
데드락  (0) 2012.09.04
3way hand shake  (0) 2012.08.13
라우팅  (0) 2012.08.13
OS의 종류와 차이점  (0) 2012.08.13

erase, clear 주의점

Posted 2013. 1. 3. 16:18

삭제시

for( ; iter != data.end() ; )

{

iter = data.erase(iter);

}

iter의 erase는 해당데이터를 삭제하고 다음 데이터를 반환한다.

만약 총 10개의 데이터가 들어 있다 치고 10개를 삭제할시

for( ; iter != data.end() ; ++iter )    

{

iter = data.erase(iter);

}

붉은색처럼 해버리면 1, 2, 3, 4, 5 순으로 삭제되는게 아니라, 1, 3, 5, 7, 9 로 삭제 되 버린다.

흔히 하기 쉬운 실수임.

 

또.. 동적할당도 직접 해제해 줘야하니

delete 부터 해주고 erase 하자

« PREV : 1 : ··· : 30 : 31 : 32 : 33 : 34 : 35 : 36 : ··· : 77 : NEXT »