pdpdds / CGSF

Online Game Server Platform
135 stars 68 forks source link

C# 에코서버 서버측 컴파일 문제 #21

Closed danaka1234 closed 9 years ago

danaka1234 commented 9 years ago

커먼파일, 라이브러리 컴파일까지 성공했구요. 클라이언트 실행시는 문제없이 윈도우가 뜹니다만, 서버는 컴파일은 성공하고 오류가 뜹니다.

환경은 윈도우 7 64비트, 인텔 Core i5-2430M (노트북)입니다.

static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); //이 부분에서 오류 }

------ 오류 내용 ------ 처리되지 않은 'System.BadImageFormatException' 형식의 예외가 EchoServer.exe에서 발생했습니다.

추가 정보: 파일이나 어셈블리 'CgsfNET64Lib, Version=1.0.5492.37780, Culture=neutral, PublicKeyToken=null' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다.


구글 검색시 DLL의 64비트 문제라고 해서 라이브러리 재컴파일을 해보려고 했는데, AnyCPU로 설정되있어서 설정을 바꾸지 않으면 다른 CPU로 바꿀수가 없네요.

문제 확인 바랍니다. 감사합니다.

jacking75 commented 9 years ago

내일 회사에 출근해서 확인해보겠습니다. 의심되는 것 중에 하나가 CGSF의 네트워크 라이브러리 부분(CGSFNet.dll)을 빌드하지 않았거나 빌드 했는데 32비트로 빌드하지 않았을까 생각됩니다.

정확한 것은 실행해보고 알려 드리겠습니다^^

jacking75 commented 9 years ago

저는 테스트 해보니 문제가 없습니다. 다만 샘플 프로젝트 중 릴리즈모드는 AnyCPU로 되어 있는 것들은 x64로 변경했습니다.

그리고 서버를 실행할 때는 서버 실행파일이 있는 곳에 꼭 아래의 C++용 dll 파일이 필요합니다. 그리고 꼭 64비트용 이어야 합니다.

ACE.dll (C++) ACEd.dll (C++)
CGSFNet.dll (C++) CGSFNet.lib (C++) CGSFNet.pdb (C++) libglog.dll (C++)

위 파일들은 CGSF\trunk\VSProject\Bin64 에 있습니다.

danaka1234 commented 9 years ago

어째선지 더 심해졌습니다... 이제는 오류 메시지도 뜨지 않고 종료됩니다. 부스트 64비트 컴파일도 다시함 / 기본이 되는 라이브러리도 다시 64비트로 컴파일 / DLL도 복사 했어도 안되네요

ECOSERVER 실행 후 원인을 알수없는 에러가 뜨고 종료됩니다.

디버그시에는 아래의 함수 내부에 들어가서 //CgsfNET64.cpp NET_ERROR_CODE errorCode = SFEngine::GetInstance()->Intialize(m_pLogicEntry, m_pDispatcher);

리턴 true를 반환해야 하는데 그냥 꺼집니다. //ServerLogicEntry.h //class ServerLogicEntry : public ILogicEntry virtual bool Initialize() override { return true; }

이하는 출력 내용입니다.

'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0b77a5c561934e089\mscorlib.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\12.0.0.0b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0b77a5c561934e089\System.Windows.Forms.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0b03f5f7f11d50a3a\System.Drawing.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0b77a5c561934e089\System.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\12.0.0.0b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\12.0.0.0b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\EchoServer.vshost.exe'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0b77a5c561934e089\System.Core.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0b77a5c561934e089\System.Xml.Linq.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0b77a5c561934e089\System.Data.DataSetExtensions.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0b03f5f7f11d50a3a\Microsoft.CSharp.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0b77a5c561934e089\System.Data.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Deployment\v4.0_4.0.0.0b03f5f7f11d50a3a\System.Deployment.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0b77a5c561934e089\System.Xml.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 0x24dc 스레드가 종료되었습니다(코드: 259 (0x103)). 0x1adc 스레드가 종료되었습니다(코드: 259 (0x103)). 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\EchoServer.exe'을(를) 로드했습니다. 기호가 로드되었습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\CgsfNET64Lib.dll'을(를) 로드했습니다. 기호가 로드되었습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\CGSFNETCommon.dll'을(를) 로드했습니다. 기호가 로드되었습니다. '[7012] EchoServer.vshost.exe' 프로그램이 종료되었습니다(코드: -1073741819 (0xc0000005) 'Access violation').

jacking75 commented 9 years ago

혹시 NET_ERROR_CODE errorCode = SFEngine::GetInstance()->Intialize(m_pLogicEntry, m_pDispatcher); 에서 SFEngine::GetInstance()는 null 객체가 아닌가요?

2015년 1월 20일 오후 9:35, danaka1234 notifications@github.com님이 작성:

어째선지 더 심해졌습니다... 이제는 오류 메시지도 뜨지 않고 종료됩니다. 부스트 64비트 컴파일도 다시함 / 기본이 되는 라이브러리도 다시 64비트로 컴파일 / DLL도 복사 했어도 안되네요

ECOSERVER 실행 후 원인을 알수없는 에러가 뜨고 종료됩니다.

디버그시에는 아래의 함수 내부에 들어가서 //CgsfNET64.cpp NET_ERROR_CODE errorCode = SFEngine::GetInstance()->Intialize(m_pLogicEntry, m_pDispatcher);

리턴 true를 반환해야 하는데 그냥 꺼집니다. //ServerLogicEntry.h //class ServerLogicEntry : public ILogicEntry virtual bool Initialize() override { return true; }

이하는 출력 내용입니다.

'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0b77a5c561934e089\mscorlib.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\12.0.0.0b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0b77a5c561934e089\System.Windows.Forms.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0b03f5f7f11d50a3a\System.Drawing.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0b77a5c561934e089\System.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\12.0.0.0b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\12.0.0.0b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\EchoServer.vshost.exe'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0b77a5c561934e089\System.Core.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0b77a5c561934e089\System.Xml.Linq.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0b77a5c561934e089\System.Data.DataSetExtensions.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0b03f5f7f11d50a3a\Microsoft.CSharp.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0b77a5c561934e089\System.Data.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Deployment\v4.0_4.0.0.0b03f5f7f11d50a3a\System.Deployment.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0b77a5c561934e089\System.Xml.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll'을(를) 로드했습니다. 기호는 로드하지 않고 건너뛰었습니다. 모듈이 최적화되어 있고 '내 코드만' 디버거 옵션을 사용하도록 설정되어 있습니다. 0x24dc 스레드가 종료되었습니다(코드: 259 (0x103)). 0x1adc 스레드가 종료되었습니다(코드: 259 (0x103)). 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\EchoServer.exe'을(를) 로드했습니다. 기호가 로드되었습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\CgsfNET64Lib.dll'을(를) 로드했습니다. 기호가 로드되었습니다. 'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Projects\cgsf\CGSF-master\NETFramework\SampleProject\Echo\ExeServer\CGSFNETCommon.dll'을(를) 로드했습니다. 기호가 로드되었습니다. '[7012] EchoServer.vshost.exe' 프로그램이 종료되었습니다(코드: -1073741819 (0xc0000005) 'Access violation').

— Reply to this email directly or view it on GitHub https://github.com/pdpdds/CGSF/issues/21#issuecomment-70647065.

Twitter : @jacking75 Blog : http://jacking.tistory.com/

pdpdds commented 9 years ago

저도 확인을 해봤습니다만 정상적으로 실행되었습니다. 혹 제가 최근에 작업한 내용 때문에 실행에 문제가 생겼을 수도 있으니 최신코드로 업데이트해서 다시 테스트 해 보셨으면 합니다.

danaka1234 commented 9 years ago

최신 프로젝트 받아봤는데 CGSFNet.dll 이외에 dll이 생성이 안되서 구 프로젝트에서 받아서 써봤구요.

실행은 문제없고 에코까지는 되는데 종료시 에러를 내고 끝나네요.

void SFNETDispatcher::LogicThreadProc(void* Args) 내부의 LogicEntrySingleton::instance()->ProcessPacket(pPacket); 여기서 에러가 납니다. SFNETDispatcher.cpp 파일 41번줄입니다.

제가 아직 디버깅이 미숙해서 cs와 cpp간 컴파일 방법을 몰라서 NULL인지는 확인 못해봤네요;

출력은

'EchoServer.vshost.exe'(CLR v4.0.30319: EchoServer.vshost.exe): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ko_b77a5c561934e089\mscorlib.resources.dll'을(를) 로드했습니다. 모듈이 기호 없이 빌드되었습니다. 'System.AccessViolationException' 형식의 첫째 예외가 CgsfNET64Lib.dll에서 발생했습니다. 'System.AccessViolationException' 형식의 첫째 예외가 CgsfNET64Lib.dll에서 발생했습니다. 'System.NullReferenceException' 형식의 첫째 예외가 CgsfNET64Lib.dll에서 발생했습니다. 처리되지 않은 'System.AccessViolationException' 형식의 예외가 CgsfNET64Lib.dll에서 발생했습니다.

추가 정보: 보호된 메모리를 읽거나 쓰려고 했습니다. 대부분 이러한 경우는 다른 메모리가 손상되었음을 나타냅니다.

디버깅 문제는 추후 업데이트 하겠습니다. 그리고 유니티에 포팅하신 사례나 c++서버에 c# 클라이언트를 연결하신 사례가 있다면 알려주시면 감사하겠습니다.

바쁘실텐데 답변 감사합니다. ^^

jacking75 commented 9 years ago

닷넷 버전은 C++ 버전의 dll을 내부적으로 사용하기 때문에 꼭 최신버전의 CGSF의 C++ 프로젝트를 빌드해야 합니다.

그리고 아직은 제가 아는한 상용 서비스에 사용한 사례는 없는 것으로 알고 있습니다(다만 곧 상용 서비스 사례가 나올 예정입니다^^).

클라이언트를 C#(유니티 포함)을 사용하는 경우는 CGSF와는 직접적인 관계가 없습니다. CGSF는 서버 프레임워크입니다. C#, Java, Python등에 상관 없이 서버에서 정한 프로토콜만 맞추어서 서버와 통신한다면 통신할 수 있습니다^^

danaka1234 commented 9 years ago

서드파티에 있는 dll가져다가 쓰고 원래 있던것들도 재컴파일 해서 하니 문제없이 돕니다.

유니티는 CGSF의 클라이언트 모듈을 쓰는가 해서 질문드린건데 큰 문제 없나보네요. 직접 C# 프로젝트 분석하면서 해보겠습니다.

긴시간 답변해주신거 감사합니다.