{{ note.content }}

Android<->C# JSON을 통한 소켓 통신 구현

사실 이런 특이 케이스는 별로 없을듯 하지만...

회사에서 Android 클라이언트가 닷넷(.net)서버 어플리케이션에서 정보를 가져오는 작업을 구현해야할 일이 생겼는데,

닷넷 버전으로 인해서 REST API를 구축하는 라이브러리를 사용을 못하는 상황을 마주하게 되었다.

기존에 구현되어 있던 방식을 이용하려고 했으나, 

어느순간 좋지 않은 방법이라는 것을 깨닫고

직접 json으로 소통할 수 있게 소켓서버를 구현하기로 맘먹었다.

GitHub 프로젝트 주소 : https://github.com/kyunooh/.net-android-socket-with-json

거의 없는 정보들...

C#서버와 안드로이드 클라이언트를 기준으로 하는 ...


C# 기존 프로세스 종료 후 프로그램 실행

프로그램이 실행되는 첫 부분에 아래와 같은 코드를 넣어줌으로 간단하게 구현할 수 있다.

            Process[] process = Process.GetProcessesByName("프로세스 이름"); // 해당 실행되고 있는 프로세스 목록 가져옴.
            Process currentProcess = Process.GetCurrentProcess();
            foreach (Process p in process)
            {
                if (p.Id != currentProcess.Id ...


FTPClient doCommand와 문자 인코딩 확인

FTPClient를 이용해 특수한 FTP 명령 사용하기

 

FTPClient는 apache-commons-net 라이브러리중의 일부이다.

 

 

FTPClient에선 기본적으로 FTP통신에서 사용하는 명령(commnad)들을 메소드로 구현해 두었지만

 

모든 명령이 구현되어 있지는 않다.

 

이런 특수한 명령의 경우 FTPClient안에 doCommand 메소드를 사용하면 해결이 가능하다. 

 

예를 들어, option 값을 주는 명령 OPTS에 "utf8 on"이라는 파라미터를 주고 싶으면

ftpClient.doCommand("OPTS", "utf8 on");

위와 같은 방법으로 사용하면 된다.

 

doCommand를 이용해 문자 인코딩 확인

 

  ...


System.DllNotFoundException

이번에 회사에 들어가면서 처음으로 윈도우 개발을 해보고 있는데,

언제나 빌드 환경 잡는게 문제인것 같다.

계속해서 DllNotFoundException이 나는데 분명히 파일이 있음에도 지속적으로 발생하여 결국 구글링,

알고보니 예외에 찍어주는 dll을 못찾는게 아니라,

그 dll안에서 의존(dependency)하고 있는 dll을 못찾아 발생하고 있어서 발생한 것이었다.

(아니 그러면 예외 로그가 이딴식으로 나오면 안되지! 라는 생각을 여러번 함...)

여튼 담부터는 의존성을 확인해봐야 겠다.

참고 : http://imitursa.tistory.com/1135

 


Page 6 of 31.