서버 구현 관련하여 질문이 있습니다.

h4n9u1의 이미지

제가 서버를 하나 구현하고자 합니다.
클라이언트 자체도 웹, C++, C#, Java, Android, Object-c등 다양한 언어로 구현할 생각이라서 네트워크 프로토콜은 TCP/IP를 사용할 생각 입니다.

방식도 클라이언트에서 명령이 전달되면 서버에서 해당하는 명령의 함수를 찾아서 연산을 처리한 다음에 클라이언트로 보내는 방식입니다.

생산성을 위하여 기존에 알고 있던 언어인 자바를 사용해서 개발을 하고 있습니다.

자바의 장점중 하나인 많은 라이브러리를 사용할려고 Vertx.io나 Netty등 네트워크 라이브러리를 시도해보았지만 Vertx.io는 String를 보내는데 실패하거나 클라이언트에서 보내온 buffer를 클라이언트로 전송하고 나서야 String가 출력되는 현상이 있었고 Netty는 Netty 구현 서버 - 자바 기본 TCP로 구현한 클라이언트 혹은 타 언어로 구현한 서버(시간이 없어서 일반 IRC 클라이언트로 URL과 포트로 접속해서 테스트 하였습니다.)에 출력이 안되는 현상이 있었습니다.

Node.js도 사용해볼려고 했지만 웹이 아닌 일반 클라이언트로 보내는 방법을 도저히 모르겠습니다.

IRC서버만 따로 구축하여 각 클라이언트와 서버 기능 모듈, 웹서버에 봇으로 바인딩을 시켜볼까 생각도 해보았지만 파일을 보내는 방법을 잘 모르겠습니다. DCC의 사용방법도 잘 모르겠고요.

잡설이 길었지만 질문은 다음과 같습니다.

1. 이벤트 형식으로 네트워크 연결을 처리하는 방법을 자세히 알고 싶습니다. 자바 소스코드로 설명해주시면 더 감사하고요.
그리고 클라이언트는 반드시 서버와 동일한 프로그래밍언어 라는 가정이 없다는 하에 알려주시면 감사하겠습니다.

2. 이미지 같은 파일을 전송할때 어떤 방식으로 서버가 보내고 클라이언트가 수신하는지 궁금합니다.

3. 부득이 하게 시간이 모자를 경우 파일의 경우 FTP서버에 올려놓고 회원으로 로그인된 클라이언트만 다운로드 받을 수 있게 하고 싶습니다. 방법은 클라이언트가 접속을 하면 유저와 랜덤 패스워드를 생성하여 전송한뒤 전송이 끝나고 클라이언트의 연결이 끊어지면 그 FTP 계정을 폐기하는 방식으로 구현할 것 같습니다. 이때 성능상의 문제나 더 좋은 방법이 있나요?

shint의 이미지

- 교육
- 예제소스
- 개발도구 다운로드
- 책
- 직원 고용. 업무 제휴.

다양한 방법이 있을거 같습니다.

교육 & 세미나 홍보
http://www.devpia.com/MAEUL/Contents/List.aspx?BoardID=5016&MAEULNo=28

---------------------------
자바 클라이언트 서버를 구현
FTP 구현
---------------------------

Java Server
http://www.codeguru.com/search/

FileZilla
https://filezilla-project.org/

Java Server
http://www.codeproject.com/search.aspx?q=Java+Server&doctypeid=1%3b2%3b3%3b13%3b14

웹. C++. C#. Java. Android. Object-c ----TCP/IP----> 서버 (함수처리)

HTML5
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=HTML5

AJAX
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=AJAX

--------------------------------------------------------------------------
자바
실패 Vertx.io https://github.com/search?utf8=%E2%9C%93&q=Vertx&type=Repositories&ref=searchresults
실패 Netty https://github.com/search?utf8=%E2%9C%93&q=Netty&type=Repositories&ref=searchresults
실패 Node.js https://github.com/search?utf8=%E2%9C%93&q=Node.js&type=Repositories&ref=searchresults

실패 IRC서버 https://github.com/search?utf8=%E2%9C%93&q=IRC&type=Repositories&ref=searchresults
실패 DCC https://github.com/search?utf8=%E2%9C%93&q=DCC&type=Repositories&ref=searchresults

--------------------------------------------------------------------------
이벤트 형식으로 네트워크 연결을 처리
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%9D%B4%EB%B2%A4%ED%8A%B8+%ED%98%95%EC%8B%9D%EC%9C%BC%EB%A1%9C+%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC+%EC%97%B0%EA%B2%B0%EC%9D%84+%EC%B2%98%EB%A6%AC

구글 IO
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EA%B5%AC%EA%B8%80+IO

Google IO
https://github.com/search?q=google+io&ref=opensearch

Google IO
http://www.codeproject.com/search.aspx?q=Google+IO&x=0&y=0&sbo=kw

구글 IO 서버
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EA%B5%AC%EA%B8%80+IO+%EC%84%9C%EB%B2%84

자바 서버
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%9E%90%EB%B0%94+%EC%84%9C%EB%B2%84

자바 서버 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%9E%90%EB%B0%94+%EC%84%9C%EB%B2%84+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

30일 완성 자바스크립트
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=30%EC%9D%BC+%EC%99%84%EC%84%B1+%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8

자바 I/O & NIO 네트워크 프로그래밍
http://book.naver.com/bookdb/book_detail.nhn?bid=1458906

--------------------------------------------------------------------------
STS. Grade. Lombok. MARS. MAVEN. Xabber Android.
Spring Tool Suite 다운로드 (이클립스 포함)
http://spring.io/tools/sts

Maven Repository.com
http://mvnrepository.com/

MAVEN - POM Reference
http://linuxism.tistory.com/1962

Nexus Repository Manager 구축하기 ( for maven )
http://ncanis.tistory.com/357

--------------------------------------------------------------------------
스프링(Spring) + 하이버네이트(Hibernate) + 메이븐(Maven) + iBatis(myBatis) + 스트럿츠(Struts)

스트럿츠(Struts)
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%8A%A4%ED%8A%B8%EB%9F%BF%EC%B8%A0%28Struts%29+

하이버네이트 3 프로그래밍 (Hibernate)
http://book.naver.com/bookdb/book_detail.nhn?bid=2888558

메이븐(Maven)
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EB%A9%94%EC%9D%B4%EB%B8%90%28Maven%29

iBatis(myBatis)
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=iBatis%28myBatis%29

스프링(Spring) 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%8A%A4%ED%94%84%EB%A7%81%28Spring%29+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

--------------------------------------------------------------------------
안드로이드 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

안드로이드 미디어 프로그래밍
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C+%EB%AF%B8%EB%94%94%EC%96%B4+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

--------------------------------------------------------------------------
다운로드 설치
--------------------------------------------------------------------------

Gradle
http://gradle.org/gradle-download/

Android Plugin for Gradle
http://developer.android.com/intl/ru/tools/building/plugin-for-gradle.html

Gradle plugin that provides deployment capabilities to local and remote containers via Cargo
https://github.com/bmuschko/gradle-cargo-plugin

Apache Maven Project
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

Pivot 1.4, Spring and Hibernate is my RPG Game - POJO DAO
http://www.codeproject.com/Articles/69381/Pivot-Spring-and-Hibernate-is-my-RPG-Game

ITFE - 스프링(Spring) 재직자 무료교육
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=84&MAEULNo=28&no=11189

http://itfe.co.kr/education_/education01_01_1.html?menu=1

메이븐-안드로이드 개발환경 만들기
http://congbab.tistory.com/58

Eclipse Indigo SR2 Packages
http://www.eclipse.org/downloads/packages/release/indigo/sr2

Downloading Apache Maven 3.3.9
http://maven.apache.org/download.cgi

댓글 첨부 파일: 
첨부파일 크기
Package icon 자바 관련 검색.zip18.55 KB

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

h4n9u1의 이미지

와 정말 감사해요ㅠㅠ 이렇게 체계적으로 자료를 정리 해주실지는 몰랐네요

쓰레기를 입력하면 쓰레기가 출력될뿐이지만 쓰레기를 출력한다고 입력한것이 쓰레기는 아니다.

maxswjeon의 이미지

쓰레기를 입력하면 쓰레기가 출력될뿐이지만 쓰레기를 출력한다고 입력한것이 쓰레기는 아니다.ㅋㅋㅋㅋ
웃기네요

죄송합니다....막올려서

shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.