문서의 이전 판입니다!


Communication API > BS2_SetSocketRetryCount


[+ 2.9.1] 일반 TCP/IP 소켓 통신 시, 통신구간에서 소켓으로부터 패킷을 읽고쓰는 도중 오류가 발생하게되면, SDK는 자동으로 일정 횟수 만큼 재시도를 하는데,
이 함수를 통해 재시도 횟수를 변경할 수 있습니다.

주의
재시도 횟수를 높이는 것은 일시적인 오류를 극복할 수 있는 좋은 방법이지만, 네트워크 연결끊김 등 직접적인 원인 발생 시 오히려 재연결이 필요한 시점에,
무의미하게 읽기/쓰기를 재시도함으로써 리소스 낭비가 발생할 여지가 있으므로 주의가 필요합니다.

함수

#include "BS_API.h"
 
int BS2_SetSocketRetryCount(void* context, uint32_t count);

파라미터

  • [In] context : Context
  • [In] count : 재시도 횟수 설정 값

반환값

성공적으로 수행될 경우 BS_SDK_SUCCESS를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다.

함께 보기

샘플코드(C++)

sample_setdebugfilelogex.cpp
const char* CURRENT_DIR = ".";
const int MAX_SIZE_LOG_FILE = 100;  // 100MB
int sdkResult = BS2_SetDebugFileLogEx(DEBUG_LOG_ALL, DEBUG_MODULE_ALL, CURRENT_DIR, MAX_SIZE_LOG_FILE);
if (BS_SDK_SUCCESS != sdkResult)
{
	printf("BS2_SetDebugFileLogEx call failed: %d", sdkResult);
	return;
}

샘플코드(C#)

sample_setdebugfilelogex.cs
const string CURRENT_DIR = ".";
const int MAX_SIZE_LOG_FILE = 100;  // 100MB
IntPtr ptrDir = Marshal.StringToHGlobalAnsi(CURRENT_DIR);
result = (BS2ErrorCode)API.BS2_SetDebugFileLogEx(Constants.DEBUG_LOG_OPERATION_ALL, Constants.DEBUG_MODULE_ALL, ptrDir, MAX_SIZE_LOG_FILE);
Marshal.FreeHGlobal(ptrDir);
if (result != BS2ErrorCode.BS_SDK_SUCCESS)
{
	Console.WriteLine("Got error({0}).", result);
	return;
}