ImageDownloader.zip


다운로드에는 닷넷 프레임워크가 필요합니다.


/////////////


https://github.com/nipa0711/SequenceImageDownloader


소스코드 입니다.


C# + WPF로 개발되었습니다.





https://www.clien.net/service/board/kin/12322778 의 글을 보고 개발 시작했습니다.



웹상의 순차적인 번호를 가진 이미지들을 다운로드 가능합니다.

'Project > Personal' 카테고리의 다른 글

Sequence Image Downloader  (0) 2018.07.11
모자이크 이미지 만들기  (0) 2017.04.01
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

mosaic photo.zip




이미지 불러와서, MS Computer Vision 애저 서버에서 분석하고,

 

그 결과 값을 받아온 뒤,

 

신뢰성 높은 태그 중 랜덤으로 하나 뽑은 후에,

 

플리커에서 해당 태그로 사진 검색하여 나온 사진들을

 

랜덤으로 조각조각 배치합니다.





https://github.com/nipa0711/mosaic-photo




'Project > Personal' 카테고리의 다른 글

Sequence Image Downloader  (0) 2018.07.11
모자이크 이미지 만들기  (0) 2017.04.01
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

서버와 클라이언트로 구성되어 있으며, C#을 이용하여 제작되었습니다.


서버는 콘솔 환경이며, 클라이언트는 WPF를 이용한 GUI환경입니다.




1:1 네트워크 플레이를 가정하고 개발되었습니다.






클라이언트 최초 실행 시.




서버 최초 실행 시의 모습입니다.




서버와의 통신을 거쳐서 접속하게 됩니다.





또 다른 클라이언트를 이용하여 접속해봤습니다.










위 영상은 실제로 친구와 네트워크를 통해 플레이 해 본 영상입니다.





클라이언트 소스
https://github.com/nipa0711/BingoClient

서버 소스
https://github.com/nipa0711/BingoServer






클라이언트에서 키 값을 서버에 전달하여, 서버에서 해당 키 값을 다시 클라이언트로 넘겨주며, 동시에 빙고판정도 서버에서 처리하게 됩니다.


이는 기본적으로 네트워크 환경의 게임에서는 클라이언트는 믿을 것이 못 된다는 선배들의 조언에 따라 개발하였기 때문입니다.


'Project > Personal' 카테고리의 다른 글

Sequence Image Downloader  (0) 2018.07.11
모자이크 이미지 만들기  (0) 2017.04.01
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

byte[] ascii = Encoding.ASCII.GetBytes("문자열");
foreach (byte b in ascii)
{
        Console.WriteLine(string.Format("0x{0:x}", b));    // Ascii 
        Console.WriteLine(((Char)b).ToString());            // Ascii To Char
}



위와 같은 형식으로 이용하면 된다.





C#으로 서버는 콘솔로 만들고,


WPF로 클라이언트로 만들어서 서로 문자열을 주고 받고 있는데,




ABCD라는 문자열을 받아와서,


ABCD라는 또 다른 문자열과 아무리 비교를 해봐도 자꾸만 다르다고 나왔다.




결국 클라이언트에서, 서버에서 받아온 문자열과, 직접 동일하게 타이핑하여 입력한 문자열 두개의 length값을 비교하니


그 값이 1 차이가 있다는 것을 알 수 있었다.




개행문자나 이런쪽 문제인 것으로 추정은 하였으나, 정확한 원인은 몰랐으며 결국 커뮤니티에 질문을 하고서야,


아스키 코드로 찍어봐라는 답변을 받고 찍어봤더니


0x3f
?


라는 것이 문자열 앞에 삽입되서 들어오는 현상이 있다는 것을 확인할 수 있었다..




이유는 여전히 모르겠지만, 아스키코드로 찍어보지 않았다면 해결 못했을지도 모르겠다.

'Study > C#' 카테고리의 다른 글

string 을 아스키 코드로 변환해서 보기  (0) 2017.01.26


외관은 위와 같습니다.

이전에 C# 끼리의 소켓통신 경험을 바탕으로, 새로 개발했습니다.

목적은 안드로이드 휴대폰과 컴퓨터 사이의 파일 전송입니다.

케이블 꼽고 복사하는게 생각보다 귀찮은 짓이라서요.

WIFI기반으로 내부네트워크에서만 동작할겁니다.









윈도우용 파일 다운

https://drive.google.com/file/d/0B3mC_hyBIvc8R01MNDVMVTlORU0/view?usp=sharing


안드로이드 어플 다운

https://play.google.com/store/apps/details?id=net.nipa0711.www.phone2mycomputer





(안드로이드 어플 실행 화면)




아직 미구현된 기능들이 많습니다.

최종적으로는 자동적으로 컴퓨터와 동기화하는 그런걸 생각하고 있지만, 갈 길이 머네요.






C# 쪽은 사실상 큰 문제가 없고, 보내는 안드로이드쪽에서, 대용량 파일 처리가 안되어 있어서 비디오등의 용량 큰 파일 전송시 어플이 죽는 현상이 있습니다.

jpg등의 이미지 파일은 200장 까지는 문제가 없네요. (장당 2mb 이내 기준)

파일전송상의 알려진 문제 해결완료.




C# 으로 작성된 만큼 닷넷 프레임웍 오류가 뜰 수 있습니다.






07/06
프로그램 안죽는 현상 문제 해결


파일다운 - 
https://drive.google.com/file/d/0B3mC_hyBIvc8UnlGQTJpclZ4cmc/view?usp=sharing



06/22 추가내용

내부 IP 소스를 변경해서 잘 잡도록 했습니다.
최소한 제 컴퓨터에서는 잘 되네요.

최소화시 트레이 아이콘으로 가게 추가.
다운경로 변경시 변경된것을 기억하도록 변경.
컴퓨터 시작시 프로그램 시작 가능하게 변경.



WPF가 생각외로 재밌고 편하네요.
뭐 여기저기 소스 복붙하고 있다는 한계가 있긴 하지만,
조금씩 새로운 것을 경험해보고 있다는데 의의가 있지 않나 생각해봅니다.

다만 여전히 외부하고 통신은 안되고 있고..
쓰레드 사용에 있어서 애로사항이 있기에 (잘 모름 ㅠㅠ), 이쪽에 있어서는 문제가 해결되고 있진 않네요.





06/20 추가내용

내부, 외부 IP를 보여줍니다.
다만, 내부IP의 경우 제대로 못 잡는 경우가 있습니다.

로그 삭제 기능 추가.
포트번호 기능 추가.
로그 내용 상세하게 변경.

아직 외부에서 접근은 제대로 되지 않는 거 같습니다.
공유기나 방화벽 등등.. 변수가 좀 되는지라 정확한 원인은 잘 모르겠네요.
내부에서는 잘 되는 것 같습니다.




이런 느낌입니다.
노트북과 데스크탑으로 테스트 해봤으며, 내부 IP 연결상황 입니다.








뇌를 자극하는 C# 4.0 프로그래밍 책 가장 뒤의 예제가 파일전송 프로그램입니다.

CLI 환경이였는데, 이것을 WPF 를 이용하여 GUI로 확장하였습니다.

쉽게 될 줄 알았는데, 이 수준으로 옮기는 것도 버거웠네요 ㅜㅜ..






상대방도 프로그램이 실행되어 있는 상태에서 상대방 ip를 치고 파일 전송시 



이렇게 창을 띄우고, 확인시 진행됩니다.





전송자체는 잘 되지만, 여러개 파일 보낼때의 처리와 (매 파일마다 전송확인하는 문제), 용량 높은 것은 그냥 뻗는 문제점이 있습니다.

조금씩 고치면서 확장해볼 계획입니다.

로컬네트워크에서만 확인해봤습니다.




TCP/IP 소켓프로그래밍과, 파일전송 프로토콜에 대해서 접해볼 수 있었는 좋은 경험이였습니다.
무엇보다 MFC대비 WPF는 상당히 편하다는 것을 체감했습니다.

+ Recent posts